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