Config.ts 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import { _decorator, Component, CCString, JsonAsset } from 'cc';
  2. import { DataSystem } from '../core/data/DataSystem';
  3. import { ResourceLoader } from '../core/resourceManager/ResourceLoader';
  4. import { ConfigData } from '../data/ConfigData';
  5. const { ccclass, property, requireComponent } = _decorator;
  6. /**
  7. * 配置组件
  8. * @description 负责加载游戏配置
  9. * @author 王锡铜、袁浩
  10. */
  11. @ccclass('Config')
  12. @requireComponent(ResourceLoader)
  13. export class Config extends Component {
  14. @property({ tooltip: "需要加载的配置文件根目录路径" })
  15. public rootPath: string = "configs/";
  16. @property({ type: [CCString], tooltip: "需要加载的配置文件相对于root的路径" })
  17. public configPaths: string[] = [];
  18. public async start() {
  19. let configData = DataSystem.getData(ConfigData);
  20. for (let i = 0; i < this.configPaths.length; i++) {
  21. let result = await (await this.getComponent(ResourceLoader).load<JsonAsset>(this.rootPath + this.configPaths[i], JsonAsset)).json;
  22. configData.set(this.configPaths[i], result);
  23. }
  24. configData.loaded = true;
  25. }
  26. }