枚举是英文但是要在EditorGUILayout.EnumPopup列表显示中文
时间: 2024-03-28 12:42:11 浏览: 118
易语言枚举文件夹并分层次显示.rar
如果你的枚举类型是英文的,但是你想在 `EditorGUILayout.EnumPopup` 方法中显示中文,你可以通过在属性上添加 `System.ComponentModel.Description` 特性来实现。具体步骤如下:
1. 首先在枚举类型中定义一个 `Description` 扩展方法,用于获取枚举值上的 `Description` 特性值,代码如下:
```
public static class EnumExtension
{
public static string GetDescription(this Enum value)
{
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
return attributes.Length > 0 ? attributes[0].Description : value.ToString();
}
}
```
2. 然后在枚举类型中为每个枚举值添加一个 `Description` 特性,用于存储对应的中文描述,代码如下:
```
public enum Direction
{
[Description("单向")]
Single = 0,
[Description("双向")]
Double = 1,
}
```
3. 最后在 `EditorGUILayout.EnumPopup` 方法中使用 `EnumExtension.GetDescription` 方法来获取枚举值的中文描述,代码如下:
```
EditorGUILayout.EnumPopup("单/双向", (Direction)EditorGUILayout.EnumPopup(_target.directionValue).GetHashCode());
```
这样,你就可以在 `EditorGUILayout.EnumPopup` 方法中显示中文描述了。
阅读全文