看視頻一步一步 拾習 = =
1.創建場景中的原件
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
//PrimitiveType有長方體 圓柱 球 膠囊 平面
cube.transform.position = new Vector3(1,0,-5);
//設置其位置
cube.name = "cube1";
//給cube命一個名
cube.tag =
2.刪除場景中的原件
GameObject obj = GameObject.Find("cube1");
//通過名字來查找原件
// GameObject obj = GameObject.FindWithTag("player");
Destroy(obj);
//銷燬
3.批量創建和刪除
/**************** 創建 ***************/
private int startPop= -5;
private ArrayList arr;
//數組存儲
// Use this for initialization
void Start ()
{
arr = new ArrayList();
for(int i = 0; i<10;i++)
{
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position = new Vector3(startPop+i,0,-5);
cube.name = "cube"+i;
arr.Add(cube);
//加入數組
}
}
/***************** 刪除 *****************/
void OnGUI()
{
if(GUI.Button(new Rect(100,80,80,30),"delete"))
{
foreach (GameObject obj in arr)
//foreach 沒用過T^T 根據數組中每個元素來循環代碼塊 感覺跟oc中for in是一樣的 這樣就好理解了
{
print(arr.Count);
Destroy(obj);
}
arr.Clear();
//清空數組
}
}
4.複雜組件克隆
-、代碼克隆
void Start ()
{
GameObject fuza = GameObject.Find("fuza");
GameObject fuzaObj = (GameObject)GameObject.Instantiate(fuza);
//克隆fuza 跟fuza的大小位置等信息都一樣
fuzaObj.transform.position = new Vector3(1,0,-3);
}
=、用prefabe克隆(性能好)
創建prefabe 拖拽
//創建簡單的樓梯效果 這樣創建場景中的luoti的組件不能刪除 否則GameObject.Find找不到相應的物體 實例不了
void Start ()
{
GameObject louti = (GameObject)GameObject.Find("louti");
for(int j =0 ; j<10;j++)
{
GameObject loutiClon = (GameObject)GameObject.Instantiate(louti);
loutiClon.transform.position = new Vector3(0,0.8f*j,j);
}
}