unity GUI练习1

第一次在c#脚本中引用泛型类的命名空间(很激动,竟然可以这样),觉的unity很强大可以引用微软的命名空间,调用以前熟悉的函数

C#脚本中arrylist无法判断arry数组的类型,应为arrylist可以添加各种类型在使用的时候进行装箱拆箱,在类型确定的情况可以使用泛型,需要引入命名空间:

using System.Collections.Generic;

 

我的练习:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class win1 : MonoBehaviour {
    List<Rect> rect1 = new List<Rect>();
    //ArrayList list = new ArrayList();
    // Rect[] rect;
    //public Texture otexture;
    // Use this for initialization
    void Start()
    {
        rect1.Add(new Rect(rect1.Count * 100, 50, 150, 100));
        // list.Add(new Rect(list.Count * 100, 50, 150, 100));
    }
    void OnGUI()
    {
        //int count = list.Count;
        for (int i = 0; i < rect1.Count; i++)
        {
            rect1[i] = GUI.Window(i, rect1[i], myWin, "小毛驴" + i);
            //list[i] = GUI.Window(i, list[i], myWin, "小毛驴" + i);
        }
    }
    void myWin(int id)
    {
        if (GUILayout.Button("添加新窗口"))
        {
            rect1.Add(new Rect(rect1.Count * 100, 50, 150, 100));
            //list.Add(new Rect(list.Count * 100, 50, 150, 100));
        }
        if (GUILayout.Button("关闭当前窗口"))
        {
            rect1.RemoveAt(id);
            //list.RemoveAt(id);
        }
        GUI.DragWindow(new Rect(0, 0, Screen.width, Screen.height));
    }
}

注释部分,使用的时arrylist,会提示,函数参数不是最匹配形式,这里可以使用泛型将其设置为Rect类型,可以考虑下数组

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。