📗
【Unity】Inspectorで編集不可のパラメータを表示したい
はじめに
初めての方も、そうでない方もこんにちは!
現役ゲームプログラマーのたむぼーです。
自己紹介を載せているので、気になる方は見ていただければ嬉しいです!
今回は
UnityのInspectorで編集不可のパラメータを表示する方法
を紹介します
処理全体
任意のEditorフォルダに下記スクリプトを格納してください。
2つのファイルが必要です
ReadOnlyAttribute.cs
using UnityEngine;
public class ReadOnlyAttribute : PropertyAttribute
{
}
ReadOnlyDrawer.cs
using UnityEngine;
using UnityEditor;
[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
public class ReadOnlyDrawer: PropertyDrawer
{
/// <summary>
/// OnGUI
/// </summary>
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginDisabledGroup(true);
EditorGUI.PropertyField(position, property, label, true);
EditorGUI.EndDisabledGroup();
}
}
使い方
Inspectorで編集不可にしたい変数にReadOnly属性を追加
ReadOnlyTest.cs
using UnityEngine;
public class ReadOnlyTest : MonoBehaviour
{
[ReadOnly]
public Vector3 parameter1;
[SerializeField, ReadOnly]
private Vector3 _parameter2;
}
Discussion