| 本帖最后由 空伊伊 于 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)
}
 下一节:数据中心的各功能介绍⑥ |