Cocos Creator和TypeScript使用枚举作为属性

问题描述 投票:1回答:1

问题严格来说是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编辑器中编辑。

有任何想法吗?

typescript cocoscreator
1个回答
2
投票

尝试以下代码

@property ({type:cc.Enum(CollisionType)})
collisionType:CollisionType = CollisionType.Static;
© www.soinside.com 2019 - 2024. All rights reserved.