📗

【Unity】Inspectorの表示を日本語にしたい

2024/03/10に公開

はじめに

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

今回は
 UnityのInspectorの表示を日本語にする方法
を紹介します

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

処理全体

任意のEditorフォルダに下記スクリプトを格納してください。

OverwriteLabelAttribute.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if  UNITY_EDITOR
	using UnityEditor;
#endif

public class OverwriteLabelAttribute : PropertyAttribute
{
	public readonly GUIContent Label;
	public OverwriteLabelAttribute(string label)
	{
		Label = new GUIContent(label);
	}
}

#if  UNITY_EDITOR
	[CustomPropertyDrawer(typeof(OverwriteLabelAttribute))]
	public class CustomLabelAttributeDrawer : PropertyDrawer
	{
		public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
		{
			var newLabel = attribute as OverwriteLabelAttribute;
			label = newLabel.Label;
			EditorGUI.PropertyField(position, property, label, true);
		}

		public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
		{
			return EditorGUI.GetPropertyHeight(property, true);
		}
	}
#endif

使い方

Inspectorで編集不可にしたい変数にOverwriteLabel属性を追加

ReadOnlyTest.cs
using UnityEngine;

public class OverwriteLabelTest : MonoBehaviour
{
	[SerializeField, OverwriteLabel("パラメータ")]
	private int _paramete;
}

Discussion