uGUIのお話 その2

20141208_00_check
今回はCanvasについて解説します。
uGUI関連の続き物と為っていて、過去の解説は下記の通りです。
その1 RectTransform

uGUIにてRectTransformと言う新しい位置決めシステムを構築しましたが、
Unity3Dは位置決めにTransformを使っていました。
これら2つの位置決めシステムを上手い事解釈して、
1つの表示領域に描画しなければいけません。
基本的にUnity3DはTransformベースで描画を行いますので、
RectTransformのオブジェクトをどうTransformに解釈するかが要点と為ります。

落とし込む時には色々な要望が来ます。
・ドットバイドットで表示したいからモニタ解像度で設定したい
・解像度関係なく同じサイズで表示させたいからメートル法で設定したい
・UIは3D依りも手前に表示させたい
・3DモデルをUIの手前にも回りこませたい
・UIが歪んでも良いから3D空間上に浮いている様な表現をしたい
・とある座標でY軸ビルボードさせておいて
これらを満たせる最適解が有れば無条件で其れを採用すれば良いのですが、
残念ながら有りません。
でも一部だけなら満たせる解釈も有ります。

Canvasでは大きく分けて3つのモードを用意しています。
其々どの様な解釈で、どの様な利点欠点があるのか見て行きましょう。

続きを読む

uGUIのお話 その1

20141130_01_initial
遂にUnity4.6.0が発表されました。
これは遂に「uGUI」が堂々と使える様に為った事を意味します。

UnityTechnologies社が時間を掛けて作り上げたこの新UIシステムは、
位置指定に従来から在るTransformを使わず、
このシステムの為に新規に作られたRectTransformを使います。
このRectTransformは見た目からして複雑です。
位置・回転・スケールだけを指定するだけだったTransformに比べ、
サイズ・アンカー・ピボットと3つも設定項目が増えています。

特定の1画面に向けてUIを作るのならこんな複雑な設定項目は必要有りません。
全ての要素を絶対座標で決め打ち配置してしまえば良いだけです。
しかし様々な解像度・アスペクト比に綺麗に配置しようとすると
RectTransformで追加された機能を使わないと難しいです。

RectTransformは設定項目が多い為表示が複雑です。
表示方法は慣れれば機能的なのですが、
何せ1つ動かすと色々な値が変わるので
何を動かしたら何が変わるのかさっぱり迄分かりません。

変更内容が分からないと使い分けも出来ず、
使い分けが出来ないと配置が出来ません。
悪循環です。
と言う事で、RectTransformについて解説していきます。

続きを読む