ikoan unity 開発メモ

Unityに関するアレコレを日々つづっていこうと思います

uGUI基本設定[Canvas]

はじめに

uGUIリリースされてから、一体どれぐらいたったのかわからない。
いままで仕事上ではNGUI使っていたので、逃げていたけれど
ついにuGUI触ってみようかな、と。

環境

Unity2018.2f

Canvasの作成

まずは基本としてRootに当たる部分を作らないとね。
えーと、GameObject > UI > Canvas っと。
あれでしょ、ここで画面解像度の差分を吸収するんでしょ?
NGUIのUI Panelみたいなもんでしょ?

デフォルトでくっついてるComponentは下記4つ。
・Rect Transform
Canvas
Canvas Scaler
・Graphic Raycaster

まずはCanvas
RenderModeが3種類
・ScreenSpaceOverlay 2D Canvas を使用してシーンの最後にレンダリングします
・ScreenSpaceCamera Canvas の Camera 設定を使用してレンダリングします
・WorldSpace レイヤーをレンダリングできる Camera を使用してレンダリングします
ScreenSpaceOverlayは必ず一番最後に描画されて
ScreenSpaceCameraはアタッチされているCameraのdepthに依存するのかな?
WorldSpaceは同layerを描画対象にしているCameraを使うのか。その場合の描画順序はOrder In Layerに準ずるんだろうか。っていうか、そもそもuGUIの描画順序把握してないや。
まぁサンプルなのでUIが一番手前でいいでしょ、ってことで、ScreenSpaceOverlayを使用。
切り替えたら、またよくわからないのが出てきたぞー。
sort orderって必ず一番手前に来るんじゃないの?って思うんだけど、同設定のCanvasがあった場合の表示順序ってことなのかな。あとで試してみるべ。
targetDisplayもadditional Shader Channelsもリファレンスに情報ないんだけどwどういうことw

targetDisplay
docs.unity3d.com
モバイルデバイス全然関係なさそうでワロタ。platform、スマホにしてるんだから隠しといてくれよw

additional Shader Channels
tsubakit1.hateblo.jp
あーなるほど。これは便利かもしれない。
これは独自のshader作るときに応用ききそうだなぁ。
特にアトラス化したテクスチャ使う時とか。

意外と長くなったので、ここまで。
次回は次のコンポーネントの話ができれば。