嵌套枚举 C#

Nested enums C#

提问人:Jamelaumn 提问时间:5/28/2023 最后编辑:Jamelaumn 更新时间:5/28/2023 访问量:112

问:

我正在 Unity 中创建一个游戏,我希望在彼此内部有多个枚举,并使“下拉列表”在 Unity 中可见

public class ItemEnums{
public enum Type
    {
        CraftingMaterial,
        Equipment,
        Food,
        Miscellaneous
    }

    public enum FoodType
    {
        Potion,
        Edible,
        Drink
    }

    public enum EdibleType
    {
        Meat,
        Herbs,
        Fruit,
        Vegetables,
        ProcessedFood
    }



}
[CreateAssetMenu(fileName = "New Item", menuName = "Create new Item")]
[System.Serializable]
public class Items : ScriptableObject
{
    public int id;

    public string itemName;

    [TextArea(3, 3)] public string description;

    public GameObject prefab;
    public Texture icon;

    public int maxStack;
    public float weight;
    public int baseValue;



    public ItemEnums.Type type;

如您所见,我实例化了枚举类型,但是在选项 food 的类型中,我想实例化枚举 FoodType,而在 FoodType Edible 中,我想实例化 EdibleType,我该怎么做?

C# Unity-Game-Engine 枚举嵌 游戏开发

评论

2赞 jmcilhinney 5/28/2023
你没有。首先,不要在类中声明枚举。它们应被视为头等类型。其次,彼此之间没有嵌套枚举这样的东西。您必须执行一些操作,例如定义一个具有三个枚举类型的三个属性的类,并且可以选择何时不适用或使属性可为 null。None
1赞 Absinthe 5/28/2023
创建一个简单的类来保存枚举。创建另一个类,您将在检查器(公开)中公开该类,其中包含枚举类的列表。不知道为什么这个问题被关闭了,没有错。
0赞 Jamelaumn 5/28/2023
哦,我关闭了,因为他说在里面制作枚举和实例化不是一个好的选择,所以为了不提出一个坏问题,我试图关闭它“-”(现在重新打开)
1赞 Ashton Way 6/29/2023
[本题](stackoverflow.com/questions/757684/enum-inheritance ) 有一个可能适合您的答案。

答: 暂无答案