版本: Unity 6 (6000.0)
语言英语
  • C#

SerializedProperty.enumDisplayNames

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每一项更改建议,并在适当的地方进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请在几分钟后 <a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

public string[] enumDisplayNames;

描述

枚举属性枚举的显示友好名称。

类似于 enumNames,但格式化使用空格和大小写。

其他资源: enumNamespropertyTypeSerializedPropertyType.EnumenumValueIndexInspectorNameAttribute.

using UnityEditor;
using UnityEngine;

public enum OptionEnum { ValueFirst = 1, ValueSecond = 2, ValueThird = 3,

[InspectorName("Value 4 - Best choice")] ValueForth = 4,

[InspectorName("Value 5 - Avoid")] ValueFifth = 5,

None = 0 }

public class EnumDisplayNameExample : ScriptableObject { public OptionEnum MyEnum = OptionEnum.ValueForth;

[MenuItem("Example/SerializedProperty enumDisplayName Example")] static void MenuCallbackup() { EnumDisplayNameExample obj = ScriptableObject.CreateInstance<EnumDisplayNameExample>(); SerializedObject serializedObject = new SerializedObject(obj); SerializedProperty enumProperty = serializedObject.FindProperty("MyEnum");

// Print the members of the enum, sorted by value // Will output: // Names: None,ValueFirst,ValueSecond,ValueThird,ValueForth,ValueFifth Debug.Log("Names: " + string.Join(",", enumProperty.enumNames));

//The display names show the InspectorName string when specified, //otherwise a more human readable version of the enum member name //Will output: //Display names: None,Value First,Value Second,Value Third,Value 4 - Best choice,Value 5 - Avoid Debug.Log("Display names: " + string.Join(",", enumProperty.enumDisplayNames));

//Will output: //Current value: Value 4 - Best choice Debug.Log("Current value: " + enumProperty.enumDisplayNames[enumProperty.enumValueIndex]); } }