📗

【Unity】Inspectorで編集不可のパラメータを表示したい

2024/03/10に公開

はじめに

初めての方も、そうでない方もこんにちは!
現役ゲームプログラマーのたむぼーです。
自己紹介を載せているので、気になる方は見ていただければ嬉しいです!

今回は
 UnityのInspectorで編集不可のパラメータを表示する方法
を紹介します

https://zenn.dev/tmb/articles/1072f8ea010299

処理全体

任意の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