57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import { _decorator, Component, Node } from 'cc';
 | |
| const { ccclass, property } = _decorator;
 | |
| 
 | |
| 
 | |
| type ResumeCallback<T> = (arg: T) => void;
 | |
| 
 | |
| @ccclass('GameState')
 | |
| export class GameState extends Component {
 | |
| 
 | |
|     private static instance: GameState;
 | |
| 
 | |
|     private constructor() {
 | |
|         super();
 | |
|     }
 | |
| 
 | |
|     public static getInstance(): GameState {
 | |
|         if (!GameState.instance) {
 | |
|             GameState.instance = new GameState();
 | |
|         }
 | |
|         return GameState.instance;
 | |
|     }
 | |
| 
 | |
| 
 | |
|     //当前是否处于暂停状态
 | |
|     PauseState: boolean = false;
 | |
|     //改变暂停状态的回调函数
 | |
|     ResumeCallBackFunc: ResumeCallback<any>[] = [];
 | |
| 
 | |
| 
 | |
|     //获取暂停状态
 | |
|     IsPauseState(): boolean {
 | |
|         return this.PauseState;
 | |
|     }
 | |
| 
 | |
|     //设置暂停状态
 | |
|     SetCurrentPauseState(State: boolean) {
 | |
|         //不等于时 设置一次
 | |
|         if (State != this.PauseState) {
 | |
|             this.PauseState = State;
 | |
| 
 | |
|             //调用恢复游戏的逻辑回调函数
 | |
|             this.ResumeCallBackFunc.forEach(callback => {
 | |
|                 callback(State);
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     //注册恢复游戏的逻辑回调函数
 | |
|     RegisterResumeCallBack(Func: ResumeCallback<any>) {
 | |
|         this.ResumeCallBackFunc.push(Func);
 | |
|     }
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 |