你可以修改这段代码来实现你想要的功能。
你需要修改EnumOrderDrawer
类,使循环不会遍历所有的enum
变量。
例如,修改以下代码:
public const string TypeOrder = "10,1,5,2";
public enum Type
{
One = 10,
Two = 1,
Three = 5,
Four = 2,
}
[EnumOrder(TypeOrder)]
public Type type3;
.
.
.
.
for (int i=0; i<property.enumNames.Length; i++)
{
items[i] = property.enumNames[indexArray[i]];
}
到
public const int[] TypeOrder = new int[] { 10, 1, 5, 2 };
public enum Type
{
One = 10,
Two = 1,
Three = 5,
Four = 2,
}
[EnumOrder(TypeOrder)]
public Type type3;
.
.
.
.
for (int i=0; i<TypeOrder.Length; i++)
{
items[i] = property.enumNames[indexArray[i]];
}
.
.
.
.
Enum.GetNames
来接收整个ObjectIDs
名称列表,然后使用所选Objects
值的名称进行过滤,再使用Enum.GetValue
传递每个已过滤的名称。 - Stefano Cavion