MRが楽しい

MRやVRについて学習したことを書き残す

Unityで同じオブジェクトに同一のスクリプトを複数設定できないようにする

本日はUnityの小ネタ枠です。
Unityで同じオブジェクトに同一のスクリプトを複数設定できないようにする方法についてです。

DisallowMultipleComponent

DisallowMultipleComponent属性を利用すると同じオブジェクトに2つ以上同一のコンポーネントを設定できないようにします。
docs.unity3d.com

以下のRequireComponentとReset関数の組み合わせで特定のコンポーネントの参照を設定したい場合などに役立ちます。
bluebirdofoz.hatenablog.com

サンプルスクリプト

サンプルスクリプトを作成しました。以下の通りクラスにDisallowMultipleComponent属性を記述して利用します。
・DisallowMultipleTest.cs

using UnityEngine;

[DisallowMultipleComponent]
public class DisallowMultipleTest : MonoBehaviour
{
    void Start()
    {
        Debug.Log("DisallowMultipleTest Start");
    }
}

同じオブジェクトに同一のコンポーネントを設定しようとすると以下のメッセージが表示されて追加できないようになります。

Can't add (Script) to (Object)
because a (Script) is already added to the game object!