Unity C# 取得父子物件

 

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

點擊會到該語法的範例 !

→  1. 取得父物件

     gameObject.transform.parent.gameObject;

 

→  2. 取得子物件

     gameObject.transform.GetChild(int index).gameObject;

     int index : 數字,放入索引值,代表取第幾個子物件,第一個索引值為0

      e.g.     gameObject.transform.GetChild(0).gameObject;

 

     取得子物件數量

    gameObject.transform.childCount;

    e.g. int Obj_childCount;

    Obj_childCount = gameObject.transform.childCount;

 

→  3. XX物件變成子物件

     XX.transform.parent = gameObject.transform;

 

→  4. XX物件變成父物件

     gameObject.transform.parent =XX.transform;

 

→  5. 子物件脫離父物件

     gameOject.transform.parent = null;

 

 

 

 

--------  接下來是各個語法的範例   --------

 

1.

取得父物件

gameObject.transform.parent.gameObject;

 

  • 範例需求 :

程式碼放置在children中,在一開始執行時,取得父物件,並Debug父物件名稱。

父子關係.jpg

 

  • 程式碼 :

GameObject father_gameObject;   //宣告一個GameObject(用來放取得的父物件)。

void Start(){    //一開始就執行。

    father_gameObject = gameObject.transform.parent.gameObject;    

    //宣告的物件 = 取得本身的父物件。

 

    Debug.Log(father_gameObject.name);   //Debug父物件的名稱。

}

 

  • 結果 : 

1_取得父物件範例_2.jpg

 

[  ///  回上方 ///  ]

2.

取得子物件

gameObject.transform.GetChild(int index).gameObject;

int index : 放入索引值,代表取第幾個子物件。

 

例如 : 取第一個子物件 ( 第一個索引值為0 ,第二個索引值為1 …以此類推)

gameObject.transform.GetChild(0).gameObject;

 

  • 範例需求 :

程式碼放置在father中,在一開始執行時,取得第一個子物件,並Debug子物件名稱。

父子關係_標記.jpg

 

  • 程式碼 :

GameObject children_gameObject;   //宣告一個GameObject(用來放取得的子物件)。

void Start(){    //一開始就執行。

    children_gameObject = gameObject.transform.GetChild(0).gameObject;   

    // 宣告的物件 = 取得本身的第一個子物件。

 

    Debug.Log(children_gameObject.name);   //Debug子物件的名稱。

}

 

  • 結果 :

2_取得子物件範例_2.jpg

 

[  ///  回上方 ///  ]

3.

XX物件變成子物件

XX.transform.parent = gameObject.transform;   // XX物件的父母 = 自身物件。

 

  • 範例需求 :

程式碼放置在father中,在一開始執行時,找到children物件,並讓children物件成為father的子物件。

同階層關係.jpg

 

  • 程式碼 :

GameObject children_gameObject;   //宣告一個GameObject(用來放取得的子物件)。

void Start(){   //一開始就執行。

     children_gameObject = GameObject.Find("children");   

     // 宣告的物件 = children物件(利用Find尋找)。

 

     children_gameObject.transform.parent = gameObject.transform;    

     // children物件的父母 = 自身物件(也就是放置此程式碼的father物件)。

}

  • 結果 :

3_某物件變成子物件範例_1.jpg

 

[  ///  回上方 ///  ]

4.

XX物件變成父物件

gameObject.transform.parent =XX.transform;   // 自身物件的父母 = XX物件。

 

  • 範例需求:

程式碼放置在children中,在一開始執行時,找到father物件,並讓father物件成為children的父物件。

同階層關係.jpg

 

  • 程式碼 :

GameObject father_gameObject;   //宣告一個GameObject(用來放取得的子物件)。

void Start(){   //一開始就執行。

     father_gameObject = GameObject.Find("father");    

     // 宣告的物件 = father物件(利用Find尋找)。

 

     gameObject.transform.parent = father_gameObject.transform;    

     // 自身物件的父母 = father物件。

}

 

  • 結果 :

4_某物件變成父物件範例_1.jpg

 

[  ///  回上方 ///  ]

5.

子物件脫離父物件

gameOject.transform.parent = null;

 

  • 範例需求 :

程式碼放置在children中,在一開始執行時,children物件脫離父物件(father)。

父子關係_標記.jpg

 

  • 程式碼 :

void Start(){    //一開始就執行。

    gameObject.transform.parent = null;    //物件的父母 = 空值。( = 沒有父母 )

}

 

  • 結果 : 

5_子物件脫離父物件範例.jpg

 

[  ///  回上方 ///  ]

 

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

點擊會到該語法的範例 !

→  1. 取得父物件

     gameObject.transform.parent.gameObject;

 

→  2. 取得子物件

     gameObject.transform.GetChild(int index).gameObject;

     int index : 數字,放入索引值,代表取第幾個子物件,第一個索引值為0

      e.g.     gameObject.transform.GetChild(0).gameObject;

 

→  3. XX物件變成子物件

     XX.transform.parent = gameObject.transform;

 

→  4. XX物件變成父物件

     gameObject.transform.parent =XX.transform;

 

→  5. 子物件脫離父物件

     gameOject.transform.parent = null;

 

 

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

 

我們有粉絲專頁囉!!!       

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

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

 

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

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

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

 

- By Cindy -

 

arrow
arrow

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