小白_Unity引擎_获取组件和添加组件

 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 {}

    在编辑状态下执行,如果添加脚本的时候添加刚体组件

猜你喜欢

转载自www.cnblogs.com/CeasarH/p/9272294.html