unity3D學習筆記1

看視頻一步一步 拾習 = =

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);
}
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章