UnityのUI
unityCanvas
UI要素を配置するための領域。
renderMode
-
Overlay: スクリーンに対してオーバーレイするように表示
-
Camera: Cameraから指定した距離(planeDistance)離れた前方に表示
-
World Space 他のオブジェクトと同じように表示
Canvas Scaler
-
UI Scale Mode (World Space以外)
-
Constant Pixel Size: 画面サイズに関わらず同じピクセル数にする
-
Scale With Screen Size: 画面サイズでスケールさせる
-
Constant Physical Size 解像度や画面サイズによらず物理的に同じサイズにする
-
-
Dynami Pixels Per Unit (World Spaceのみ): Textなどの動的に生成されたビットマップの解像度
1と3でそれぞれこんな感じになる。
AutoLayout
Vertical Layout Groupや Grid Layout Group など。これらのComponentを追加すると子要素のTransform(の一部)が自動で設定される。
Content Size Fitter
Layout Component要素に合うように自動で調整される。
レイアウトを作る
RectTool(ツールバーボタンの一番右の四角いやつ)を選択して、Pivot, Localにするとよい。 Canvasにいろいろ置いていって、Anchorを選んでRect Transformを設定していく。 あとはPrefabにしてInstantiateするなりして表示する。
using UnityEngine.UI;
public GameObject dialogWindow;
var obj = Instantiate(obj, new Vector3(0, 0, 200), Quaternion.identity);
var hogeText = obj.transform.Find("panel/hoge").gameObject.GetComponent<Text>();
hogeText.text = "fuga";
var fugaButton = obj.transform.Find("panel/fuga").gameObject.GetComponent<Button>();
fugaButton.onClick.AddListener (() => {
Debug.Log ("onClick");
});