ArrayList
// 从1个集合中拿出某个元素,用完了之后将元素返还给该集合
public ArrayList EnemyEvent = new ArrayList();// 不同于 Java中 的指定对象类型的实例化public ArrayList EnemyEventUsed = new ArrayList();
public void GetEnemyPath(string path) {
EnemyEvent.Clear();// 清空数组中的所有元素
EnemyPathEvent = ResourceLoad.FindObj(path);
for (int i = 0; i < EnemyPathEvent.transform.GetChildCount();i++ )
{
// 向数组中添加元素
EnemyEvent.Add(EnemyPathEvent.transform.GetChild(i).gameObject);
}
print(" There has "+EnemyEvent.Count+" events ...");
}
public GameObject RandomEnemyPath() {
int i = Random.Range(0, EnemyEvent.Count);
Debug.Log(" Now choose the path ---> "+i);
//int i = 0;
GameObject pathObj = (GameObject)EnemyEvent[i];
EnemyEvent.RemoveAt(i);// 移除数组中第 i 个的元素
EnemyEvent.TrimToSize();// 重置数组大小
EnemyEventUsed.Add(pathObj);
Invoke("RelasedPath", 6);// 此方法(Invoke)不能调用含参数的方法
return pathObj;
}
// 释放被霸占的元素
public void RelasedPath() {
EnemyEvent.Add(EnemyEventUsed[0]);
EnemyEvent.TrimToSize();
EnemyEventUsed.RemoveAt(0);
EnemyEventUsed.TrimToSize();
}
Hashtable
// 声明 Hashtable 类型的集合
public Hashtable EnemyPathUsed = new Hashtable();
// 向该集合添加元素
EnemyPathUsed.Add("E1", 0);
// 取出该元素
print(EnemyPathUsed["E1"]);
对Hashtable 中元素中取值的时候注意了:
需要强制转换一下: if((int)EnemyPathUsed[path] == 0){ Debug.log( " It's true ... " );}
javascripts List 集合格式:
public var affected : List.<GameObject> = new List.<GameObject> ();