指定コンポーネントのアタッチを保証させる属性 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 を追加した場合、指定コンポーネントがなくてもエラーも警告も出ないので注意が必要です。

コメントを残す