对话游戏-在编辑器上实现自定义数组

198 阅读1分钟

需求

在游戏开发过程中,我们常常会进行自定义数据结构的声明,并且为了开发的方便,使关卡编辑人员可以低成本地参与关卡设计与编辑,需要在使用@property在编辑器实现自定义数据数组。

效果展示

  • 假设有这个对话开发的需求 (图片来源于游戏恋爱养成游戏截图)

  • 在编辑器上可以做个类似的效果,当然可能在对话较多的情况下,配置表更香,这里只是举个场景例子。 上图的效果可在对话处理的游戏中广泛使用。

实现步骤

  1. 定义自定义类,注意点
  • 加入@ccclass("talkItem")注解
  • 类不继承cc.Component,去掉 extend cc.Component
const { ccclass, property } = cc._decorator;

@ccclass("talkItem")
export default class talkItem {
    @property({
        displayName: "名字",
    })
    name: string = "";

    @property({
        displayName: "头像",
        type: cc.SpriteFrame
    })
    avatar: cc.SpriteFrame = null;

    @property({
        displayName: "内容",
        type: [cc.String]
    })
    content = [];
}
  1. 声明数组
const { ccclass, property } = cc._decorator;
import talkItem from "./talkItem"
@ccclass
export default class testTalk extends cc.Component {

    @property({
        displayName: "对话",
        type: talkItem,
    })
    private talkRole: talkItem[] = [];


    start() {

    }

    // update (dt) {}
}

小结

内容比较简单,但应用场景很多,也相信很多同学不会, 刚好今天有小伙伴来问怎么处理,羽毛就直接抽了一点时间给大家做一个简单的分享,写了这篇文章。

更多

包体优化指南

不规则3D地形行走

基于creator3.0的3D换装

快速实现3d抛物线绘制

奇形怪状-不规则按钮实现

长按二维码关注公众号"羽毛不会飞"回复"自定义数组"获取源码

今日技能你学废了吗?

更多精彩欢迎关注微信公众号