unity 获取组件,添加组件

#region 获取组件
2 //1.通过泛型的方式获取组件
3 BoxCollider bc = gameObject.GetComponent();
4 gameObject.GetComponent().material.color = Color.red;
5
6 //2.脚本也是组建可以同样的方法获取
7 NewBehaviourScript ns = gameObject.GetComponent();
8
9 //3.从物体本身或者其子物体(儿子,孙子,重孙子)中获取单个或多个组件(或脚本)
10 MeshRenderer ms = gameObject.GetComponentInChildren();
11 ms.material.color = Color.blue;
12 //获取子物体组件列表(包括物体本身以及下面的所有子物体)
13 MeshRenderer[] mrs = gameObject.GetComponentsInChildren();
14
15
16 //3.从父类物体中获取单个或多个组件或脚本(包括物体本身,其父类物体(父类,爷爷,祖宗)
17 MeshRenderer mr = gameObject.GetComponentInParent();
18 //获取父类中组件列表
19 MeshRenderer[] mres = gameObject.GetComponentsInParent();
20 int count = mres.Length;
21
22
23
24 #endregion

添加组件:

1.动态添加组件

1 //动态添加相关的组件或者脚本 2 Rigidbody rb = gameObject.AddComponent();

2.通过扩展编辑器添加组件[RequireComponent]

注意:扩展编辑器所执行的代码一定是在编辑器状态下的

例如要添加刚体组件Rigidbody

    [RequireComponent(typeof(Rigidbody))]  在挂载脚本时候添加刚体,不是在执行时候添加的
    public class NewBehaviourScript2 : MonoBehaviour {}
在编辑状态下执行,如果添加脚本的时候添加刚体组件

你可能感兴趣的:(unity,代码)