LevelManager.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { _decorator, Component, JsonAsset, Node } from 'cc';
  2. import LevelData from '../Data/LevelData';
  3. import { Global } from '../Common/Global';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('LevelManager')
  6. export default class LevelManager extends Component {
  7. @property(JsonAsset)
  8. levelDataJson: JsonAsset = null;
  9. public levelData: LevelData[] = [];
  10. private static _instance: LevelManager = null;
  11. static getInstance(): LevelManager {
  12. return LevelManager._instance;
  13. }
  14. onLoad() {
  15. if (LevelManager._instance) {
  16. this.node.destroy();
  17. return;
  18. }
  19. LevelManager._instance = this;
  20. // 解析关卡数据
  21. this.levelData = this.levelDataJson.json as LevelData[];
  22. // Global.MaxLv = this.levelData.length;
  23. if (Global.MaxLv > this.levelData.length) {
  24. Global.MaxLv = this.levelData.length;
  25. }
  26. }
  27. getLevelData(levelId: number): LevelData {
  28. // 通过关卡ID获取关卡数据
  29. return this.levelData.find((data) => data.id === levelId);
  30. }
  31. }