AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

UI部品を製作中

地味にUI部品を製作中。面倒くさいorz
けど、部品化しておけば今後楽になるはず


水平レイアウト、垂直レイアウト、
水平レイアウト・スクロール可能
垂直レイアウト・スクロール可能
グリッド・スクロール可能
の4種を作った。枠もSpriteEditorで指定。
f:id:yasu9780:20161019234151p:plain
f:id:yasu9780:20161019232457p:plain
でも、垂直スクロール可能は垂直レイアウトの上位互換ってことで、スクロールありだけでいいかも?
(実機の解像度の違いもふまえて)
よく考えると、一つのWindowに部分的に、垂直レイアウト、水平レイアウトがレイアウトできるといいのかな?
個人的にはHTMLみたいにコードでフォームが書けるような仕様がいいんだけどな。



グリッドは初めて使ってみたけど、ConstraitCountで3と指定しておけば、4個目のInstantiateで改行して配置してくれる模様
f:id:yasu9780:20161019232451p:plain



垂直は前もやったように、VerticalLayoutGroup指定がミソ
f:id:yasu9780:20161019232502p:plain


ボタンの動的生成は、すべてのサンプルが同一コード。

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 () {
    }
}