Unity C# 生成    Instantiate

 

(一)    生成物件在某物件的位置

 

  • 此篇重點語法 * * * * *

→ Instantiate實例化(要生成的物件, 物件位置, 物件旋轉值);

  e.g. Instantiate(gameObject, transform.position, transform.rotation);

 

★ 補充 :

自訂   Position : new Vector3(3,0,0)

 自訂   Rotation : new Quaternion(0,90,0,0)

e.g. Instantiate (gameObject, new Vector3(3,0,0), new Quaternion(0,90,0,0));

 

★ 提醒 !!!

物件有調整過旋轉值Rotation,記得要用一個GameObject來當做父物件,此父物件旋轉值都為   0

若沒有這樣做 -> 生成出來的物件方向會跟您想要的不同哦~

生成物件注意事項.jpg

 

  • 此篇效果 – 生成物件在某物件位置  * * * * 

 

     

 

-  大概了解重點後,接下來進入完整教學   -

 

 

需求 : 

遊戲一開始時,生成   Box 物件在   Instantiate_Position 物件的位置

 

做法 :

一、場上有一個   Box 物件,以及   Instantiate_Position 生成點物件

Box物件.jpg

生成點物件.jpg

       

二、 新增一個程式碼,在此命名為   Instantiate_Obj,並將程式碼拖曳到    Instantiate_Position 生成點物件上

拖曳程式碼.jpg

 

三、寫程式囉! 不過我們先看看完整程式碼 ( 下一點有程式碼解析  ! )

生成程式碼_02.jpg

 檔案名稱與 public class的名稱 記得要一樣哦!!! (不然會出現錯誤!)

 

public class Instantiate_Obj : MonoBehaviour {

public GameObject Instantiate_Position;

public GameObject Box;

void Start () {

Instantiate(Box, Instantiate_Position.transform.position,

Instantiate_Position.transform.rotation);

}

}

 

四、程式碼解析

生成程式碼.jpg

 

public class Instantiate_Obj : MonoBehaviour {

 

public GameObject Instantiate_Position; //物件的生成點。

public GameObject Box; //要生成的物件。

//public 公開

在宣告前面加上public,程式碼底下會出現欄位,可以從外部放入指定的物件(要與宣告類型相同哦!)

 

void Start () //一開始就執行生成物件。

{  

Instantiate(Box, Instantiate_Position.transform.position,

Instantiate_Position.transform.rotation);

//生成(Box, 物件的位置:生成點的位置, 物件的旋轉值:生成點的旋轉值);

 

//Instantiate實例化(要生成的物件, 物件位置, 物件旋轉值);

    }

}

 

五、 將剛剛宣告  的   public GameObject Instantiate_Position 與 public GameObject Box 產生的欄位,放入指定物件。

拖曳物件.jpg

 

六、完成啦  !!!!!

遊戲一開始時,生成   Box 物件在   Instantiate_Position 物件的位置

 

 

  • 複習重點語法 * * * * *

→ Instantiate實例化(要生成的物件, 物件位置, 物件旋轉值);

  e.g. Instantiate(gameObject, transform.position, transform.rotation);

 

★ 補充 :

自訂   Position : new Vector3(3,0,0)

 自訂   Rotation : new Quaternion(0,90,0,0)

e.g. Instantiate (gameObject, new Vector3(3,0,0), new Quaternion(0,90,0,0));

 

 

 

-------------------------------------------------------------------------------------------------------------------------------------

 

我們有粉絲專頁囉!!!       

如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!

https://www.facebook.com/Straying2018/

 

●     如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !  

●     對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!  

●     有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家!

 

- By Cindy -          

arrow
arrow

    『迷途』 發表在 痞客邦 留言(5) 人氣()