好吧,我可以在检查器上设置此枚举,但是我想限制哪个枚举取决于选择的主枚举,以避免使用与所需枚举不同的枚举
public MainSortEnum Sort;
public SecondaryTypeEnum1 Type1;
public SecondaryTypeEnum2 Type2;
public SecondaryTypeEnum3 Type3;
和枚举
public enum MainSortEnum
{
First,
Second,
Thirth,
}
public enum SecondaryTypeEnum1
{
FirstType,
SecondType,
ThirthType,
}
public enum SecondaryTypeEnum2
{
FirstType,
SecondType,
ThirthType,
}
public enum SecondaryTypeEnum3
{
FirstType,
SecondType,
ThirthType,
}
所以我只想能够在此脚本的检查器上基于MainSortEnum选择所需的枚举,这可能吗?
答案 0 :(得分:1)
您将需要为这些enums
所在的班级创建一个custom inspector。
例如,我们将调用此类MyClass
:
... //other namespaces
using UnityEditor;
[CustomEditor(typeof(MyClass))]
public class MyClassEditor : Editor {
MyClass myClass;
void OnEnable() {
myClass = (MyClass)target;
}
public override void OnInspectorGUI() {
myClass.Sort = EditorGUILayout.EnumPopup("Sort", myClass.Sort);
if (myClass.Sort == MainSortEnum.First)
myClass.Type1 = EditorGUILayout.EnumPopup("Type 1", myClass.Type1);
else if (myClass.Sort == MainSortEnum.Second)
myClass.Type2 = EditorGUILayout.EnumPopup("Type 2", myClass.Type2);
else
myClass.Type3 = EditorGUILayout.EnumPopup("Type 3", myClass.Type3);
}
}
答案 1 :(得分:0)
最简单的方法是拥有多个GameObjects
(在您的情况下为3)并根据用户输入切换gameObject.SetActive(true/false)
。