Component

组件

  • Component是所有组件的基类。
  • Unity中的游戏对象是基于组件的,所有游戏对象都可以由一个空物体加上一堆功能组件组成。
  • 要让一个游戏对象具有一个新功能,只需要给它添加一个对应的组件就可以了,比如要想让物体发光就添加一个Light组件。
  • 当选中一个游戏对象时,可以在检视面板中看到它所有的组件。

获取组件

  • 只要能获取游戏对象的某一个组件,就可以通过该组件的GetComponent<T>()方法,获得该游戏对象的其他任意组件。
    // Disable the spring on the HingeJoint component.
    HingeJoint hinge = transform.GetComponent<HingeJoint>();
    hinge.useSpring = false;
    
  • 任何组件都可以使用tranform属性直接获取本游戏物体的transform组件。

    5.0之前的版本还有light、camera、rigidbody等属性方便直接获取常用组件。但方便的同时也造成了混乱,5.0后就改掉了。

  • 任何一个组件都可以通过gameObject属性获取其对应的游戏对象。

  • 组件只能用来获取其他组件,添加和删除组件有别的类来完成。具体内容将在后面章节介绍。
// 查找组件:Component、GameObject类都有GetComponent<T>()方法
Rigidbody r = GetComponent<Rigidbody>();

// 添加组件:
if (r == null) 
    r = gameObject.AddComponent<Rigidbody>();

// 删除组件
Object.Destory(r); 删除当前脚本对象组件

相关参考

  • GameObject与Component的关系
  • 顺序加载脚本