第一次在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类型,可以考虑下数组