当enum值为字符串时,编辑器对枚举的属性不能弹出下拉选择框

  • Creator 版本:2.3.3

  • 目标平台:

  • 详细报错信息,包含调用堆栈:
    在typescript中定义一个enum类型,每个元素为字符串,设置为可通过编辑器选择类型,结果不能弹出下拉选择框

export enum BattleUnitType {
NONE = “None”,
AIRJET = “AIRJET”,
SPACESHIP = “SPACESHIP”,
TANK = “TANK”,

}

@property({
    type:cc.Enum(BattleUnitType ),
})
type:BattleUnitType  = BattleUnitType.NONE;

  • 重现方式:

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

定义 enum 时直接用 TS 语法就行,cc.Enum() 会将 Key 转载为字符串,显示到属性面板上。
我在 ShaderHelper 组件中是动态生成的 Enum,获取的 Effect 文件名字。

下图是ShaderEnum 在内存中的结构

使用ShaderEnum[Water]可以获得数字13, 使用ShaderEnum[13]可以获得字符串 Water。

希望能对你有帮助,这里是源码仓库:
https://github.com/playnb/ShaderHelper2

明白了,谢谢!原来神奇之处在这里!

大佬,字符串枚举多香呀,用数字的话,存盘的资源,在删掉一个枚举的时候就全部偏移了。

1赞