RequireComponent
本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 47 课,共 85 课。
写在脚本类上方的 [RequireComponent(typeof(Rigidbody))] 会告诉 Unity,这个脚本所在的对象必须有 Rigidbody,否则脚本无法运行:
[RequireComponent(typeof(Rigidbody))]
public class Jumper : MonoBehaviour
{
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
}当你在 Inspector 中或使用 AddComponent 将脚本添加到对象时,Unity 会执行这一要求:如果对象没有 Rigidbody,Unity 就会添加一个。只要 Jumper 还在对象上,Inspector 就不允许移除这个 Rigidbody。因此,这里的 GetComponent 总能找到 Rigidbody,Jumper 不需要进行检查。
这个属性不会追溯生效:在写下这行代码之前就已经有 Jumper 的对象,不会自动获得 Rigidbody,除非先移除脚本再重新添加。一个属性最多可以指定三种类型,例如 [RequireComponent(typeof(Rigidbody), typeof(BoxCollider))],一个类也可以带有多个这样的属性。
亲手试试
这节课没有代码挑战。
Unity 脚本基础中的所有课
自己练习: Unity 在线编辑器