地味にUI部品を製作中。面倒くさいorz
けど、部品化しておけば今後楽になるはず
水平レイアウト、垂直レイアウト、
水平レイアウト・スクロール可能
垂直レイアウト・スクロール可能
グリッド・スクロール可能
の4種を作った。枠もSpriteEditorで指定。
でも、垂直スクロール可能は垂直レイアウトの上位互換ってことで、スクロールありだけでいいかも?
(実機の解像度の違いもふまえて)
よく考えると、一つのWindowに部分的に、垂直レイアウト、水平レイアウトがレイアウトできるといいのかな?
個人的にはHTMLみたいにコードでフォームが書けるような仕様がいいんだけどな。
グリッドは初めて使ってみたけど、ConstraitCountで3と指定しておけば、4個目のInstantiateで改行して配置してくれる模様
垂直は前もやったように、VerticalLayoutGroup指定がミソ
ボタンの動的生成は、すべてのサンプルが同一コード。
using UnityEngine; using System.Collections; using UnityEngine.UI; public class makeButtons : MonoBehaviour { RectTransform prefab; void Start () { GameObject prefab = (GameObject)Resources.Load("Button"); for (int i = 0; i < 10; i++) { var item = GameObject.Instantiate(prefab) as GameObject; item.name = "Button"+(i+1); item.transform.SetParent(transform, false); Text txt = item.transform.FindChild("Text").gameObject.GetComponent<Text>(); txt.text = "Button " + i; Button bt2 = item.GetComponent<Button>(); int j = i; bt2.onClick.AddListener(() => { onButtonClick(j); }); } } void onButtonClick(int no) { Debug.Log("Button Click: " + no); } void Update () { } }