[开发者心得] 【模块管理和数据中心】——数据中心的使用步骤⑤

[复制链接]
2273 |0
空伊伊 发表于 2023-3-9 19:34:26 | 显示全部楼层 |阅读模式

本帖最后由 空伊伊 于 2023-11-8 17:27 编辑

模块管理和数据中心

目录

为什么要使用模块管理①

模块管理的使用步骤②

模块管理的各功能介绍③

为什么要使用数据中心④

数据中心的使用步骤⑤

数据中心的各功能介绍⑥

数据中心的使用步骤

1.编写数据 class 继承 SubData

自己想要的数据字段只需要在class里添加即可(不过需要注意,加上@Decorator.saveProperty装饰器的字段才能够被保存以及同步)

export class BagData extends Subdata {
    /**背包物品 */
    @Decorator.persistence() // 加上装饰器字段才能够被永久存储
    bagItem: any[];

    /**背包皮肤 */
    @Decorator.persistence() // 加上装饰器字段才能够被永久存储
    bagSkin: any;

    /**初始化数据,当远端数据不存在时,会调用这个方法来初始化数据 */
    public initDefaultData(): void {
        this.bagItem = []
        this.bagSkin = "皮肤"
    }
}

2.按需给数据 class 添加增删查改以及保存方法

class BagData extends Subdata {

    /**背包物品 */
    @Decorator.persistence() // 加上装饰器字段才能够被永久存储
    bagItem: any[];

    /**背包皮肤 */
    @Decorator.persistence() // 加上装饰器字段才能够被永久存储
    bagSkin: any;

    /**初始化数据,当远端数据不存在时,会调用这个方法来初始化数据 */
    public initDefaultData(): void {
        this.bagItem = []
        this.bagSkin = "皮肤"
    }

    /**给背包增加物品 */
    public addBagItem(item) {
        this.bagItem.push(item)
        // 修改完自动保存一次数据
        this.save(true)
    }

    /**修改背包皮肤 */
    public changeBagSkin(skin) {
        this.bagSkin = skin
        // 如果不想保存,可以不写save方法,数据就不会保存到DataCenterS的playerDataMap里边
    }

    /**保存数据 */
    public saveBagData() {
        this.save(true)
    }
}

3.获取对应数据并使用

/**使用自己的背包数据做一些事情 */(客户端方法)
public useBagDataDoSomeThing() {
    let bagData = DataCenterC.getData(BagData)
    console.log("我背包里的物品:" + bagData.bagItem)
    console.log("我背包的皮肤:" + bagData.bagSkin)
}

/**使用指定玩家的背包数据做一些数据 */(服务端方法)
public useTagetPlayerBagDataDoSomeThing(player: Player) {
    let playerBagData = DataCenterS.getData(player, BagData)
    console.log("player背包里的物品:" + playerBagData.bagItem)
    console.log("player背包的皮肤:" + playerBagData.bagSkin)
}

下一节:数据中心的各功能介绍⑥

回复

使用道具 举报

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