使用 unity 開發遊戲時,往往需要在程式( C# Script )中表達某個遊戲物件或元件。例如有一個 script 掛在 A 物件,但你卻想要在這個 script 寫程式控制 B 物件,這時候就得懂得抓取物件才行。以下列舉一些常用的方法。 ● 抓取物件(GameObject) GameObject.Find("場景中的物件名稱"); 例如要旋轉場景中名為 kitty 的物件: GameObject.Find("kitty").transform.Rotate( 0, 2, 0 ); GameObject.Find 無法抓取原本不在場景中或未啟用(active為false)的物件。 若要取得這類物件,就先在 script 中 public GameObject myObj; 然後到 Inspector 面板為 public 變數指定物件。(例如從 Project 面板把 prefab 拉進去) ◎ 抓取 tag 物件 GameObject[] myObjArray; myObjArray = GameObject.FindGameObjectsWithTag("foo"); // 所有 tag 為 foo 的物件,都會被抓出來存到變數(陣列) myObjArray 中。 可參閱「unity Array 陣列資料存取」這篇文章。 ◎ 抓取父物件 transform.parent.gameObject; ◎ 抓取子物件 ※ 只包含下一層級物體,不含孫輩以下 transform.GetChild(2).gameObject; // 抓取第 3 個子物體(索引號是從 0 開始),可透過 transform.childCount 取得子物體的數量。 ● 抓取元件(Component) GetComponent<元件類型>(); 例如要對 Rigidbody 元件使用 AddForce 方法: GetComponent
unity C# 語法教學入門 >>
Unity Script 常用語法教學(unity課程入門學習筆記)>>
如何在家學習英文?英文線上課程平台,聽說讀寫一把抓!