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

时间:2014-12-03 04:28:54

标签: c# unity3d

在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#仅支持int类型?
使用此代码没问题吗?

2 个答案:

答案 0 :(得分:0)

问题是Unity的枚举序列化器expects a 32bit value only。 一些可能的解决方法:

  • 使用[NonSerialized]属性。

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

答案 1 :(得分:-2)

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

A unity forum similar to this suggests using ulong instead