_target.driectVaule = (DriectionType)EditorGUILayout.EnumPopup("单/双向", _target.driectVaule); 这样写如何在选中时候显示中文,而不是英文
时间: 2024-03-28 19:42:09 浏览: 15
你可以在枚举类型中的每个成员上使用 `System.ComponentModel.Description` 特性,为其添加中文描述。然后在代码中使用反射获取该特性的值,从而实现在选中时显示中文。
示例代码:
```csharp
public enum DriectionType
{
[Description("单向")]
OneWay,
[Description("双向")]
TwoWay
}
_target.driectVaule = (DriectionType)EditorGUILayout.EnumPopup("单/双向", _target.driectVaule);
// 获取枚举成员的中文描述
public static string GetDescription(Enum value)
{
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];
if (attributes != null && attributes.Length > 0)
{
return attributes[0].Description;
}
else
{
return value.ToString();
}
}
// 在选中时显示中文
string chineseDescription = GetDescription(_target.driectVaule);
EditorGUILayout.LabelField(chineseDescription);
```