指定コンポーネントのアタッチを保証させる属性 RequireComponent
2020年7月7日
[RequireComponent(Type)]
using UnityEngine;
using UnityEngine.Playables;
[RequireComponent(typeof(PlayableDirector))]
public class TestBehaviour : MonoBehaviour
{
private PlayableDirector playableDirector{ get; set; }
//----------------------------------------------------------------------------
private void Start()
{
// PlayableDirector がアタッチされているので確実に取得できる
playableDirector = GetComponent<PlayableDirector>();
playableDirector.Play();
}
} // class TestBehaviour
RequireComponent で コンポーネントを宣言することで、アタッチが強制されます。
マニュアルでは 3つまで用意されています。
[RequireComponent(typeof(PlayableDirector),typeof(Rigidbody),typeof(Animator))]
public class TestBehaviour : MonoBehaviour
{
}
複数行宣言もできます。
[RequireComponent(typeof(PlayableDirector))]
[RequireComponent(typeof(Rigidbody))]
[RequireComponent(typeof(Animator))]
public class TestBehaviour : MonoBehaviour
{
}
アタッチ後、指定コンポーネントを削除しようとすると怒られます。
ヒューマンエラーが減りますね。
ちなみに、スクリプトをアタッチ後 RequireComponent を追加した場合、指定コンポーネントがなくてもエラーも警告も出ないので注意が必要です。