Unity C# 枚举,不支持的类型错误

本文关键字:类型 错误 不支持 枚举 Unity | 更新日期: 2023-09-27 18:32:50

在Unity C#中,
此枚举代码仅在运行时在控制台上出错。

[System.Flags]
private enum ActionSet : long
{
    Sit      = 0x0000000000000001,
    Stand    = 0x0000000000000002,
    Walk     = 0x0000000000000004,
    Sleep    = 0x0000000000000008,
    Run      = 0x0000000000000010,
    Happy    = 0x0000000100000000,
    Sleepy   = 0x0000000200000000,
    Gloomy   = 0x0000000400000000
}

错误是:

不支持的枚举类型"Character.ActionSet"用于类"字符"中的字段"blrah blrah"

Unity C# 仅支持整型?
使用此代码没有问题吗?

Unity C# 枚举,不支持的类型错误

问题是 Unity 的枚举序列化程序仅需要 32 位值。一些可能的解决方法:

  • 使用 [非序列化] 属性。

  • 将值存储在基础类型中(示例中为 long)。

就像之前提到的,Unity 的枚举序列化程序只需要 32 位值。

类似的团结论坛建议改用ulong。