Unity中通过组件赋予对象各种功能,了解组件也是十分有必要的
一个对象可以涵盖多个组件,每个组件可以提供一个特殊功能。每个对象都会有默认组件,根据对象种类默认组件不同,但基本都有Transform组件
下面列举一些常用的组件:
Transform 对象位置(position),旋转(rotation),缩放(scale)
Rigidbody 刚体组件
Renderer 渲染物理模型
Light 灯光属性
Camera 摄像机组件
Collider 碰撞体属性
Audio 声音属性
在Unity的UI界面上可以操作组件,同样用代码也可以。下面介绍下代码操作组件的一些方式:
对象访问自己的组件,也就是当前脚本和访问的自定义组件绑定在同一游戏对象(访问自定义组件(T)是类模板,使用时替换成自己的类名即可):
GetComponent<T>() // 得到组件
GetComponents<T>() // 得到组件列表
GetComponentInChildren<T>() 得到对象或者子对象的组件
GetComponentsInChildren<T>() 得到对象或者子对象的组件列表
实例如下:
Player player1;
void Start() {
player1 = GetComponent<Player>();
}
游戏对象可以访问自己的组件,也可以通过脚本访问其他对象的组件,也就是当前脚本和访问的自定义组件绑定不在同一游戏对象
实例如下:
Player player1;
void Start() {
player1 = GameObject.Find(“Player”).GetComponent<Player>();
}
使用代码是可以对组件进行启动和禁用的:
GetComponent<Player>().enabled = true; // 启用
GetComponent<Player>().enabled = false; // 禁用
通过对组建的启动和禁用就可以实现在一些特定情况下触发某种功能的效果了
因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!