- Creator 版本: cocos creator 3.6.1
今天在写代码的时候想给Node节点添加2个字段属性,系统给的提示是在cc.d.ts里面添加2个字段,但是我觉得这个太不友好了,会导致其他地方的脚本也可以获取到这2个属性。在看了其他论坛和方法后我总结得出了以下可以实现的方法,还有希望出现的方法
1.添加新脚本 aa.d.ts ,为Node节点添加多余属性,全局通用【可行】

2.定义一个class类继承Node类,然后强制类型转换 【可行】
export class BlockNode extends Node {
baseIndex: number;
blockIndex: number;
}
@ccclass('game')
export class game extends Component {
@property(Prefab)
blockPrefab: Prefab
initBlock(num) {
let blockNode: Node = instantiate(this.blockPrefab);
let BlockNodeNew : BlockNode = blockNode as BlockNode
BlockNodeNew.baseIndex = 0;
BlockNodeNew.blockIndex = 此本文本将被隐藏num;
}
3.直接给对象添加一个属性值,无需添加多余代码,【局部有效】
this.node["aaa"] = 2;
this.node["bbb"] = 2;
let aaa_value = this.node["aaa"];
let bbb_value = this.node["bbb"];
4.希望可以直接在定义属性的时候添加多余的字段属性【不知道有没有这种功能】
@ccclass('game')
export class game extends Component {
//如果可以在定义属性的时候再给对象添加多余的属性就太好了
@property(Prefab)
blockPrefab: Prefab { baseIndex : number; blockIndex : number}
initBlock(num) {
let blockNode: Node = instantiate(this.blockPrefab);
let BlockNodeNew : BlockNode = blockNode as BlockNode
BlockNodeNew.baseIndex = 0;
BlockNodeNew.blockIndex = 此本文本将被隐藏num;
}