Просмотр исходного кода

单机版空格不要退回主页,不要退出游戏

lvjincheng 2 лет назад
Родитель
Сommit
07232467c0
1 измененных файлов с 47 добавлено и 4 удалено
  1. 47 4
      Assets/BowArrow/Scripts/Expand/PersistenHandler.cs

+ 47 - 4
Assets/BowArrow/Scripts/Expand/PersistenHandler.cs

@@ -47,13 +47,14 @@ public class MenuBackController {
     {
         long lastLast = lastPressExitTime;
         lastPressExitTime = JCUnityLib.TimeUtils.GetTimestamp();
-        if (lastPressExitTime - lastLast < 10 * 1000)
+        if (lastPressExitTime - lastLast < 10 * 1000 && !CommonConfig.StandaloneMode)
         {
             OnTwiceBack();
         }
         else
         {
-            OnOnceBack();
+            if (CommonConfig.StandaloneMode) OnOnceBackStandAlone();
+            else OnOnceBack();
         }
     }
     private void BanTwice() {
@@ -84,8 +85,50 @@ public class MenuBackController {
             }
             return;
         }
-        Debug.Log("菜单退出APP询问");
-        PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByKey("tip_phone-menu-back_quit-app"));
+        if (!CommonConfig.StandaloneMode)
+        {
+            Debug.Log("菜单退出APP询问");
+            PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByKey("tip_phone-menu-back_quit-app"));
+        }
+    }
+    public void OnOnceBackStandAlone()
+    {
+        var sceneName = SceneManager.GetActiveScene().name;
+        if (sceneName == "Entry")
+        {
+            BanTwice();
+            Debug.Log("菜单退出: " + sceneName);
+            Application.Quit();
+            return;
+        }
+        if (sceneName.StartsWith("Game") || NeedBackGameScenes.Contains(sceneName))
+        {
+            BanTwice();
+            Debug.Log("菜单返回主页");
+            SceneManager.LoadScene("Home", LoadSceneMode.Single);
+            return;
+        }
+        if (views.Count > 0)
+        {
+            BanTwice();
+            MenuBackInterface i = views[views.Count - 1];
+            if (i.GetType().Name == "GameStartView") return;
+            if (i.OnMenuBack())
+            {
+                views.Remove(i);
+                Debug.Log("菜单返回成功: " + i);
+            }
+            else
+            {
+                Debug.Log("菜单返回失败: " + i);
+            }
+            return;
+        }
+        if (!CommonConfig.StandaloneMode)
+        {
+            Debug.Log("菜单退出APP询问");
+            PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByKey("tip_phone-menu-back_quit-app"));
+        }
     }
     private void OnTwiceBack() {
         Debug.Log("菜单退出APP");