指定コンポーネントのアタッチを保証させる属性 RequireComponent

マニュアル

[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 を追加した場合、指定コンポーネントがなくてもエラーも警告も出ないので注意が必要です。

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です