Unity的Inspector面板挂载的脚本显示中文变量名

C#是支持中文变量命名的,最起码我是不会用的。
原因有二:1、太LOW了 ,2、可能还会存在着莫名其妙的异常。
所以能在Unity的Inspector面板看到中文,会感到那么一丝丝的亲切感。。。

话不多说 先看效果!!!


using UnityEngine;

public class LableTest : MonoBehaviour {
    //公有变量直接显示“hello”
    public string hello = "";

    //在变量名之前加“[Label("名字")]”之后 
    //代码中还使用Name 但是inspector显示“名字”
    [Label("名字")]
    public string Name = "name";

    //[SerializeField]的作用是在Inspector面板显示私有变量
    [SerializeField, Label("年龄")]
    private int age = 18;

}

实现过程主要是在项目当中添加这两个脚本


目录明细.png
using UnityEngine;

public class LabelAttribute:PropertyAttribute
{
    private string name = "";   
    
    public string Name { get { return name; } }

    public LabelAttribute(string name)
    {
        this.name = name;
    }
}
using UnityEngine;
using UnityEditor;

[CustomPropertyDrawer(typeof(LabelAttribute))]
public class LabelAttributeDrawer:PropertyDrawer
{
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        LabelAttribute attr = attribute as LabelAttribute;
        if(attr.Name.Length > 0)
        {
            label.text = attr.Name;
        }
        EditorGUI.PropertyField(position, property, label);
    }
}

你可能感兴趣的:(Unity的Inspector面板挂载的脚本显示中文变量名)