public void StartGame() { //得到模型层类的对象实例 dataProxy = Facade.GetInstance(() => new AppFacade()).RetrieveProxy(Mod_GameDataProxy.NAME) as Mod_GameDataProxy; StartCoroutine(GetTime()); }
////void StartGame() { //// ??? 需要开始游戏后才处理 ??? //// 需要延迟的方法 //// 至少每次重新开始游戏,都要进行一次 //// _proxyObj = Facade.GetInstance(() => new AppFacade()).RetrieveProxy(Mod_GameDataProxy.NAME) as Mod_GameDataProxy; ////} void OnTriggerEnter2D(Collider2D collision) { //至少每次重新开始游戏,都要进行一次 _proxyObj = Facade.GetInstance(() => new AppFacade()).RetrieveProxy(Mod_GameDataProxy.NAME) as Mod_GameDataProxy; if (GlobalParams.IsStartGame && collision.gameObject.tag == "Player") { _proxyObj?.AddScore(); } }
/// <summary> /// 要执行的对应命令 /// </summary> /// <param name="notification"></param> public override void Execute(INotification notification) { GlobalParams.IsStartGame = false; //停止脚本运行。 StopScriptRunning(); //保存当前最高分数 //使用了一种面向接口的方法,就不需要调用GetInstance方法了 _proxyObj = Facade.RetrieveProxy(Mod_GameDataProxy.NAME) as Mod_GameDataProxy; _proxyObj?.SaveHighestScore(); //重置游戏数据 _proxyObj?.ResetData(); //关闭当前UI窗体,回到引导窗体 CloseCurrentUIForm(); }