1. 程式人生 > >小白_Unity引擎_獲取組件和添加組件

小白_Unity引擎_獲取組件和添加組件

length 組件 通過 class 獲取 添加 mes 添加組件 {}

 1         #region 獲取組件
 2         //1.通過泛型的方式獲取組件
 3         BoxCollider bc =  gameObject.GetComponent<BoxCollider>();
 4         gameObject.GetComponent<MeshRenderer>().material.color = Color.red;
 5 
 6         //2.腳本也是組建可以同樣的方法獲取
 7         NewBehaviourScript ns =   gameObject.GetComponent<NewBehaviourScript>();
8 9 //3.從物體本身或者其子物體(兒子,孫子,重孫子)中獲取單個或多個組件(或腳本) 10 MeshRenderer ms = gameObject.GetComponentInChildren<MeshRenderer>(); 11 ms.material.color = Color.blue; 12 //獲取子物體組件列表(包括物體本身以及下面的所有子物體) 13 MeshRenderer[] mrs = gameObject.GetComponentsInChildren<MeshRenderer>();
14 15 16 //3.從父類物體中獲取單個或多個組件或腳本(包括物體本身,其父類物體(父類,爺爺,祖宗) 17 MeshRenderer mr = gameObject.GetComponentInParent<MeshRenderer>(); 18 //獲取父類中組件列表 19 MeshRenderer[] mres = gameObject.GetComponentsInParent<MeshRenderer>(); 20 int count = mres.Length; 21 22
23 24 #endregion

添加組件:

1.動態添加組件

1 //動態添加相關的組件或者腳本 2 Rigidbody rb = gameObject.AddComponent<Rigidbody>();

2.通過擴展編輯器添加組件[RequireComponent]

  註意:擴展編輯器所執行的代碼一定是在編輯器狀態下的

  例如要添加剛體組件Rigidbody

        [RequireComponent(typeof(Rigidbody))]  在掛載腳本時候添加剛體,不是在執行時候添加的
        public class NewBehaviourScript2 : MonoBehaviour {}

在編輯狀態下執行,如果添加腳本的時候添加剛體組件

小白_Unity引擎_獲取組件和添加組件