问题严格来说是TypeScript。如果我在Cocos Creator中使用基于JavaScript的Cocos项目,那么我的工作就完美了。
我在枚举文件中有以下枚举。
export const enum CollisionType {
Static= 0,
Dynamic= 1,
Solid= 2,
SemiSolid= 3
}
在我的game.ts文件中,我有以下内容
import {CollisionType} from "./Enums";
export default class PlayerControl extends cc.Component {
@property (CollisionType)
collisionType:CollisionType = CollisionType.Static;
但不幸的是,这不起作用。我在CollisionType下面出了一个红线,出现以下错误:
Argument of type 'typeof CollisionType' is not assignable to parameter of type 'string | number | boolean | Function | any[] | { type?: any; visible?: boolean | (() => boolean); displayName?: string; tooltip?: string; multiline?: boolean; readonly?: boolean; min?: number; max?: number; ... 7 more ...; animatable?: boolean; } | ValueType'.
如果我没有将@property设置为我的变量,它可以正常工作,但是这个值无法在Cocos Creator编辑器中编辑。
有任何想法吗?
尝试以下代码
@property ({type:cc.Enum(CollisionType)})
collisionType:CollisionType = CollisionType.Static;