繁体   English   中英

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

[英]Unity C# enum, Unsupported type error

在 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”用于“Character”类中的字段“blrah blrah”

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

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

  • 使用 [NonSerialized] 属性。

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

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

与此类似的统一论坛建议改用 ulong

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM