はじめに
特に規模が大きいプロジェクトだと、Unityのコンポーネントを直接使わずに、プロジェクトごとでラップすることがあると思います。
しかしUnityのコンポーネントをラップするだけでは、そのラップしたコンポーネントを使ってくれるとは限りません。
その解決案として今回は、Unityデフォルトのコンポーネントを触れなくしてみようと思います。
Imageコンポーネントの場合
[CustomEditor(typeof(Image), true)]
[CanEditMultipleObjects]
public class HideImageComponent : ImageEditor
{
public override void OnInspectorGUI()
{
EditorGUI.BeginDisabledGroup(true);
DrawDefaultInspector();
EditorGUI.EndDisabledGroup();
}
}
グレーアウトしている部分が触れなくなっています。