Android
VR
daydream

Daydream開発入門 uGUIを使いスコアを固定位置に表示したかったけど出来なかった話

Unityで開発する際、uGUIを使いスコアを画面上部に固定表示することがあると思います
↓こんな感じのことをDaydreamでもやりたいなーと思ったのですが...
スクリーンショット 2017-10-26 21.56.45.png

結論から言うと、この固定表示はDaydreamでは出来ません
理由はUnityの公式サイトに記載がありました。抜粋すると、

VR では通常、このアプローチは使用できません。理由は、人間の眼は近過ぎる物には焦点を合わせることができないことに加え、 Unity VR が Screen Space-Overlay に対応していないからです。

とのことです。そもそも対応していないのですね

ではDaydreamでスコア表示など、どうすれば良いかというと。こちらも先ほどのサイトに記載がありました

VR では、上記の方式ではなく、通常は、描画モード(Render Mode)の World Space Canvas を使用して環境自体の中に UI を配置する必要があります。こうすることでプレイヤーの眼が UI に焦点を合わせられるようになります。これは Spatial UI (空間 UI)と呼ばれます。

画像のようにCanvasのRendre ModeをWorld SpaceにすればOKです
スクリーンショット 2017-10-26 22.10.48.png

これでテキスト配置をすることが出来たのですが、さらに注意点として

ワールド内に UI を配置する際にも注意すべきことがあります。UI がユーザーに近すぎると眼精疲労に繋がります。逆に遠すぎると水平線に焦点を合わせているような感覚になり、これは屋外の場合は問題ないかもしれませんが小さな部屋の場合は問題です。また UI の縮尺に関しても適正な設定が必要です。動的な設定が必要な場合もあります。

とのことなので、配置する際の大きさやカメラとの距離も考慮しないといけないのですね

公式がすごくよくまとまっている上に日本語なので、ぜひ興味のある方は読まれると良いかと思います!