RequireComponent
CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 33/67。
[RequireComponent(typeof(Rigidbody))]をスクリプトのクラスの上に記述すると、そのスクリプトが同じオブジェクト上のRigidbodyなしでは動作できないことをUnityに伝えます。
[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は追加されません。1つの属性で最大3つの型を指定できます。たとえば[RequireComponent(typeof(Rigidbody), typeof(BoxCollider))]のように指定でき、1つのクラスに複数の属性を付けることもできます。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。