LevelManager.ts 897 B

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