#RequireComponentとは?
Unityのスクリプトリファレンスによると...
RequireComponent属性は、必要なコンポーネントを依存関係として自動的に加えます。
RequireComponentを使ったスクリプトをゲームオブジェクトにアタッチすると、必要なコンポーネントが自動的にそのゲームオブジェクトに加えられるようになります。
これはセットアップエラーを回避するのに役に立ちます。
例えば、あるスクリプトではRigidbodyが同じゲームオブジェクトに常に加えられる必要があるとします。
RequireComponentを使用することでこれを自動的に実行し、セットアップで間違えることがなくなります。RequireComponentは、コンポーネントがゲームオブジェクトに加えられる時点で、欠落している依存関係のみを検知します。ゲームオブジェクトに新しい依存関係が欠落していても、そのコンポーネントのすでに存在しているインスタンスにそれらの欠落した依存関係が自動的に加えられるわけではありません。
まあ、簡単にまとめると...
アタッチするGameObject
に対して**必要不可欠な属性(RigidbodyやAnimator, Scriptなど)**をスクリプトに書き込んでくことによってアタッチのし忘れを防止するおまじないみたいな感じです.
#RequireComponentの有用性
では, どういうときにRequireComponent
を使うのかというと例えば...
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Animator))] //AnimatorをアタッチしたGameObjectにComponentとして加える
[RequireComponent(typeof(Rigidbody))] //RigidbodyをアタッチしたGamaObjectにComponentとして加える
[RequireComponent(typeof(MovingScript))] //MovingScript.csをアタッチしたGameObjectとして加える
なので、使える場面として
・たくさんのGameObjectにアタッチする予定のあるスクリプトの時に使える
・Componentに入れ忘れやすい人
・エラー回避
ぜひぜひ使ってみてください〜