import { _decorator, Component, CCString, JsonAsset } from 'cc'; import { DataSystem } from '../core/data/DataSystem'; import { ResourceLoader } from '../core/resourceManager/ResourceLoader'; import { ConfigData } from '../data/ConfigData'; const { ccclass, property, requireComponent } = _decorator; /** * 配置组件 * @description 负责加载游戏配置 * @author 王锡铜、袁浩 */ @ccclass('Config') @requireComponent(ResourceLoader) export class Config extends Component { @property({ tooltip: "需要加载的配置文件根目录路径" }) public rootPath: string = "configs/"; @property({ type: [CCString], tooltip: "需要加载的配置文件相对于root的路径" }) public configPaths: string[] = []; public async start() { let configData = DataSystem.getData(ConfigData); for (let i = 0; i < this.configPaths.length; i++) { let result = await (await this.getComponent(ResourceLoader).load(this.rootPath + this.configPaths[i], JsonAsset)).json; configData.set(this.configPaths[i], result); } configData.loaded = true; } }