[开发者心得] 一分钟会自定义脚本属性。只能用基础类型?不存在!

  [复制链接]
1122 |5
六安鱼片 发表于 2023-2-21 16:45:56 | 显示全部楼层 |阅读模式
本帖最后由 山山山 于 2023-11-20 15:42 编辑

1. 什么是脚本属性?

顾名思义,脚本属性是脚本中的属性,在脚本中使用@Core.Property()修饰的属性为脚本属性,具有脚本属性的脚本拖到编辑器中,会在脚本的属性面板显示对应的属性。例如下面的脚本在编辑器中会显示出”生命值“,“攻击力”等属性,从而可以在编辑器中设置这些属性。此外,脚本属性还有多个参数选项,大家可以先行探索使用。

enum RaceType {
    Human,
    Ghost,
    Monster
}

@Component
export default class CharacterInfo extends Script {

    @Property({ displayName: "生命值" })
    public hp: number = 0;
}


hXBXBwqzZ0.jpg



2. 自定义属性
编辑器的脚本属性支持自定义类型,自定义的类型需要用@Core.Type来修饰。这样就可以在编辑器中显示及修改自己定义的属性啦。示例如下:







/** 宠物技能类 */

@Serializable
class PetSkill {
    @Property({ displayName: "技能id" })
    name: number[] = [0];
}

/** 宠物类 */
@Serializable
class MyPet {
    @Property({ displayName: "宠物名称" })
    petName: string = "";
    @Property({ displayName: "宠物技能" })
    args: PetSkill[] = [new PetSkill()];
}

@Component
export default class CharacterInfo extends Script {

    @Property({ displayName: "角色宠物" })
    public pets: MyPet[] = [new MyPet()];

}


lOhRfOFqZz.jpg






回复

使用道具 举报

alphaAE 发表于 2023-2-21 18:03:35 | 显示全部楼层
太酷了哥
回复

使用道具 举报

游客 发表于 2023-2-22 13:18:38 | 显示全部楼层
有用的知识增加了
回复

使用道具 举报

逝水无痕 发表于 2023-2-22 14:10:29 | 显示全部楼层
还能这样用啊,牛的牛的
回复

使用道具 举报

犯困嫌疑人 发表于 2023-2-22 17:17:08 | 显示全部楼层
好炫酷!
回复

使用道具 举报

天胡街输牌大王 发表于 2023-2-24 10:44:09 | 显示全部楼层
偷学偷学
回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表