From 4bae263816c1bb4fe9039f24bcaaa3eba33eb415 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 06 五月 2019 17:34:23 +0800
Subject: [PATCH] 3335 添加standalone平台支持.

---
 Core/GameEngine/SnxxzGame.cs     |   10 
 Core/GameEngine/Login/Launch.cs  |  391 +++++++++++++++++++++++++++++++-----------------
 Utility/ExceptionCatcher.cs      |    2 
 System/WindowBase/OneLevelWin.cs |    7 
 System/Voice/OpusNative.cs       |    4 
 Core/Common/ResourcesPath.cs     |    2 
 Core/SDK/SDKUtility.cs           |    8 
 Utility/DeviceUtility.cs         |   16 -
 Utility/ResolutionUtility.cs     |    2 
 9 files changed, 272 insertions(+), 170 deletions(-)

diff --git a/Core/Common/ResourcesPath.cs b/Core/Common/ResourcesPath.cs
index 1a1ad42..fc6b8d8 100644
--- a/Core/Common/ResourcesPath.cs
+++ b/Core/Common/ResourcesPath.cs
@@ -54,7 +54,7 @@
         StreamingAssetPath = Application.streamingAssetsPath + "/android/";
 #elif UNITY_IOS
         StreamingAssetPath = Application.streamingAssetsPath + "/ios/";
-#elif UNITY_EDITOR
+#else
         StreamingAssetPath = Application.streamingAssetsPath + "/standalone/";
 #endif
 
diff --git a/Core/GameEngine/Login/Launch.cs b/Core/GameEngine/Login/Launch.cs
index b27ce39..b4472bc 100644
--- a/Core/GameEngine/Login/Launch.cs
+++ b/Core/GameEngine/Login/Launch.cs
@@ -2,10 +2,9 @@
 using System.Collections;
 using Snxxz.UI;
 using System;
-
 using System.Collections.Generic;
 using System.IO;
-
+using System.Diagnostics;
 
 public class Launch : MonoBehaviour
 {
@@ -59,6 +58,13 @@
 #if !UNITY_EDITOR
         tasks.Enqueue(assetCopyTask);
 #endif
+#endif
+
+#if UNITY_STANDALONE
+#if !UNITY_EDITOR
+        tasks.Enqueue(assetCopyTask);
+#endif
+        tasks.Enqueue(getVersionInfoTask);
 #endif
 
         tasks.Enqueue(checkAssetValidTask);
@@ -127,7 +133,7 @@
 
         if (launchComplete)
         {
-            Debug.LogFormat("鍚姩鑰楁椂锛歿0}", timer);
+            UnityEngine.Debug.LogFormat("鍚姩鑰楁椂锛歿0}", timer);
             progressInfo = new ProgressInfo(m_CurrentStage, 1, 1f, 1f);
             this.enabled = false;
             StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
@@ -203,42 +209,147 @@
         {
             duration = Mathf.Max(0.1f, expectTime);
 
-#if UNITY_ANDROID && !UNITY_EDITOR
-        if (!SDKUtility.builtinAssetCopyFinished)
-        {
-            firstLaunch=true;
-            SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/musics.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/musics.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/prefabs.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/prefabs.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/sprites.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/sprites.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/animationclips.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/animationclips.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/materials.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/materials.manifest.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.7z");
-            SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.manifest.7z");
+            if (Application.isEditor)
+            {
+                EditorCopyAsset();
+            }
+            else
+            {
+                AndroidCopyAsset();
+                IosCopyAsset();
+                StandaloneCopyAsset();
+            }
 
-            SDKUtility.Instance.CopyOneAsset("config/Contact.txt.7z");
-            SDKUtility.Instance.CopyOneAsset("config/HelpInfo.txt.7z");
-            SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt.7z");
-            SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt.7z");
-            SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt.7z");
-
-            AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath);
-            LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version);
+            if (!firstLaunch)
+            {
+                done = true;
+            }
         }
-#endif
 
-#if UNITY_IOS && !UNITY_EDITOR
-        if (!VersionUtility.Instance.InIosAuditTime())
+        public override void End()
+        {
+            if (!AssetSource.builtInFromEditor)
+            {
+                AssetBundleUtility.Instance.InitBuiltInAsset();
+            }
+
+            ConfigInitiator.SyncInit();
+            WindowCenter.Instance.DestoryWinsByStage(WindowCenter.WindowStage.Launch);
+            AssetBundleUtility.Instance.UnloadAssetBundle("builtin/prefabs", true, false);
+            WindowCenter.Instance.OpenFromLocal<LaunchWin>();
+        }
+
+        public override void Update()
+        {
+            if (done)
+            {
+                return;
+            }
+
+            if (timer > duration)
+            {
+                done = true;
+            }
+            else
+            {
+                done = false;
+                progress = timer / duration;
+            }
+
+            timer += Time.deltaTime;
+        }
+
+        [Conditional("UNITY_ANDROID")]
+        private void AndroidCopyAsset()
         {
             if (!SDKUtility.builtinAssetCopyFinished)
-            {  
-                firstLaunch=true;
+            {
+                firstLaunch = true;
+                SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin_assetbundle.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/musics.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/musics.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/prefabs.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/prefabs.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/sprites.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/sprites.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/animationclips.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/animationclips.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/materials.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/materials.manifest.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.7z");
+                SDKUtility.Instance.CopyOneAsset("builtin/scriptableobjects.manifest.7z");
+
+                SDKUtility.Instance.CopyOneAsset("config/Contact.txt.7z");
+                SDKUtility.Instance.CopyOneAsset("config/HelpInfo.txt.7z");
+                SDKUtility.Instance.CopyOneAsset("config/PriorBundle.txt.7z");
+                SDKUtility.Instance.CopyOneAsset("config/PriorLanguage.txt.7z");
+                SDKUtility.Instance.CopyOneAsset("config/ApkUpdateUrl.txt.7z");
+
+                AssetDeCompressTask.Decompress(ResourcesPath.Instance.ExternalStorePath);
+                LocalSave.SetString("BuiltInAssetCopyCompleted_Android", VersionConfig.Get().version);
+            }
+        }
+
+        [Conditional("UNITY_IOS")]
+        private void IosCopyAsset()
+        {
+            if (!VersionUtility.Instance.InIosAuditTime())
+            {
+                if (!SDKUtility.builtinAssetCopyFinished)
+                {
+                    firstLaunch = true;
+                    var targetDirectory = ResourcesPath.Instance.ExternalStorePath;
+                    if (!Directory.Exists(targetDirectory))
+                    {
+                        Directory.CreateDirectory(targetDirectory);
+                    }
+
+                    var fileNames = new List<string>();
+                    var files = new List<FileInfo>();
+                    FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files);
+                    foreach (var file in files)
+                    {
+                        var name = Path.GetFileName(file.FullName);
+                        fileNames.Add(StringUtility.Contact("builtin", Path.DirectorySeparatorChar, name));
+                    }
+
+                    fileNames.Add("builtin_assetbundle");
+                    fileNames.Add("builtin_assetbundle.manifest");
+
+                    var configFiles = new List<FileInfo>();
+                    FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles);
+                    foreach (var file in configFiles)
+                    {
+                        var name = Path.GetFileName(file.FullName);
+                        fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar, name));
+                    }
+
+                    foreach (var item in fileNames)
+                    {
+                        var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item);
+                        var toPath = StringUtility.Contact(targetDirectory, item);
+
+                        var destDirectoryName = Path.GetDirectoryName(toPath);
+                        if (!Directory.Exists(destDirectoryName))
+                        {
+                            Directory.CreateDirectory(destDirectoryName);
+                        }
+
+                        File.Copy(fromPath, toPath, true);
+                    }
+
+                    LocalSave.SetString("BuiltInAssetCopyCompleted_IOSorStandalone", VersionConfig.Get().version);
+                }
+            }
+        }
+
+        [Conditional("UNITY_STANDALONE")]
+        private void StandaloneCopyAsset()
+        {
+            if (!SDKUtility.builtinAssetCopyFinished)
+            {
+                firstLaunch = true;
                 var targetDirectory = ResourcesPath.Instance.ExternalStorePath;
                 if (!Directory.Exists(targetDirectory))
                 {
@@ -279,61 +390,25 @@
                     File.Copy(fromPath, toPath, true);
                 }
 
-                LocalSave.SetString("BuiltInAssetCopyCompleted_IOS", VersionConfig.Get().version);
+                LocalSave.SetString("BuiltInAssetCopyCompleted_IOSorStandalone", VersionConfig.Get().version);
             }
         }
-#endif
-#if UNITY_EDITOR
+
+        [Conditional("UNITY_EDITOR")]
+        private void EditorCopyAsset()
+        {
             if (!AssetSource.allFromEditor)
             {
                 FileExtersion.DirectoryCopy(ResourcesPath.CONFIG_FODLER, ResourcesPath.Instance.StreamingAssetPath + "config");
                 FileExtersion.DirectoryCopy(ResourcesPath.ResourcesOutPath + "BuiltIn", ResourcesPath.Instance.StreamingAssetPath + "builtin");
             }
-#endif
-            if (!firstLaunch)
-            {
-                done = true;
-            }
         }
 
-        public override void End()
-        {
-            if (!AssetSource.builtInFromEditor)
-            {
-                AssetBundleUtility.Instance.InitBuiltInAsset();
-            }
-
-            ConfigInitiator.SyncInit();
-            WindowCenter.Instance.DestoryWinsByStage(WindowCenter.WindowStage.Launch);
-            AssetBundleUtility.Instance.UnloadAssetBundle("builtin/prefabs", true, false);
-            WindowCenter.Instance.OpenFromLocal<LaunchWin>();
-        }
-
-        public override void Update()
-        {
-            if (done)
-            {
-                return;
-            }
-
-            if (timer > duration)
-            {
-                done = true;
-            }
-            else
-            {
-                done = false;
-                progress = timer / duration;
-            }
-
-            timer += Time.deltaTime;
-        }
     }
 
     public class InitSettingTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("InitSettingTask_ExpectTime", 1f); }
             protected set { LocalSave.SetFloat("InitSettingTask_ExpectTime", value); }
         }
@@ -385,8 +460,7 @@
 
     public class SDKInitedTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("SDKInitedTask_ExpectTime", 1f); }
             protected set { LocalSave.SetFloat("SDKInitedTask_ExpectTime", value); }
         }
@@ -439,8 +513,7 @@
         int totalCount = -1;
         List<FileInfo> copyTasks = new List<FileInfo>();
 
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("AssetCopyTask_ExpectTime", 70f); }
             protected set { LocalSave.SetFloat("AssetCopyTask_ExpectTime", value); }
         }
@@ -450,7 +523,51 @@
             m_CurrentStage = LaunchStage.AssetCopy;
             duration = Mathf.Max(0.5f, expectTime);
             outTime = 50f;
-#if UNITY_ANDROID && !UNITY_EDITOR
+
+            if (Application.isEditor)
+            {
+                done = true;
+            }
+            else
+            {
+                AndroidCopyAsset();
+                IOSorStandaloneCopyAsset();
+            }
+        }
+
+        public override void End()
+        {
+            expectTime = timer;
+            DebugEx.LogFormat("{0}鎵ц鏃堕暱锛歿1}锛�", this.GetType().Name, timer);
+
+            if (!Application.isEditor)
+            {
+                AndroidProcessCopyComplete();
+                IOSorStandaloneProcessCopyComplete();
+            }
+        }
+
+        public override void Update()
+        {
+            if (done)
+            {
+                return;
+            }
+
+            timer += Time.deltaTime;
+
+            if (!Application.isEditor)
+            {
+                AndroidWaitCopyAssetComplete();
+                IOSorStandaloneWaitCopyAssetComplete();
+            }
+
+            ExceptionReport();
+        }
+
+        [Conditional("UNITY_ANDROID")]
+        private void AndroidCopyAsset()
+        {
             switch (VersionConfig.Get().assetAccess)
             {
                 case InstalledAsset.FullAsset:
@@ -471,9 +588,11 @@
                     done = true;
                     break;
             }
-#endif
+        }
 
-#if UNITY_IOS && !UNITY_EDITOR
+        [Conditional("UNITY_IOS"), Conditional("UNITY_STANDALONE")]
+        private void IOSorStandaloneCopyAsset()
+        {
             if (VersionUtility.Instance.versionInfo != null && VersionUtility.Instance.versionInfo.downAsset == 1)
             {
                 switch (VersionConfig.Get().assetAccess)
@@ -519,32 +638,11 @@
             {
                 done = true;
             }
-#endif
-
-#if UNITY_EDITOR
-            done = true;
-#endif
-
         }
 
-        public override void End()
+        [Conditional("UNITY_ANDROID")]
+        private void AndroidWaitCopyAssetComplete()
         {
-            expectTime = timer;
-            DebugEx.LogFormat("{0}鎵ц鏃堕暱锛歿1}锛�", this.GetType().Name, timer);
-#if UNITY_IOS && !UNITY_EDITOR
-            LocalSave.SetString("AssetCopyCompleted_IOS", VersionConfig.Get().version);
-#endif
-        }
-
-        public override void Update()
-        {
-            if (done)
-            {
-                return;
-            }
-
-            timer += Time.deltaTime;
-#if UNITY_ANDROID && !UNITY_EDITOR
             if (!SDKUtility.Instance.AssetCopyFinished)
             {
                 done = false;
@@ -554,9 +652,11 @@
             {
                 done = true;
             }
-#endif
+        }
 
-#if UNITY_IOS && !UNITY_EDITOR
+        [Conditional("UNITY_IOS"), Conditional("UNITY_STANDALONE")]
+        private void IOSorStandaloneWaitCopyAssetComplete()
+        {
             if (totalCount > 0)
             {
                 if (completedCount < totalCount)
@@ -587,15 +687,24 @@
                 done = true;
             }
 
-#endif
-            ExceptionReport();
         }
+
+        [Conditional("UNITY_ANDROID")]
+        private void AndroidProcessCopyComplete()
+        {
+        }
+
+        [Conditional("UNITY_IOS"), Conditional("UNITY_STANDALONE")]
+        private void IOSorStandaloneProcessCopyComplete()
+        {
+            LocalSave.SetString("AssetCopyCompleted_IOSorStandalone", VersionConfig.Get().version);
+        }
+
     }
 
     public class AssetDecompressTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("AssetDecompressTask_ExpectTime", 5f); }
             protected set { LocalSave.SetFloat("AssetDecompressTask_ExpectTime", value); }
         }
@@ -648,8 +757,7 @@
 
     public class GetVersionInfoTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("GetVersionInfoTask_ExpectTime", 1f); }
             protected set { LocalSave.SetFloat("GetVersionInfoTask_ExpectTime", value); }
         }
@@ -659,31 +767,33 @@
             m_CurrentStage = LaunchStage.ClientVersion;
             duration = Mathf.Max(0.5f, expectTime);
 
-#if UNITY_ANDROID
-            if (InGameDownTestUtility.enable || !Application.isEditor)
+            if (Application.isEditor)
             {
-                VersionUtility.Instance.RequestVersionCheck();
-                done = false;
-                progress = 0f;
+                if (InGameDownTestUtility.enable)
+                {
+                    VersionUtility.Instance.RequestVersionCheck();
+                    done = false;
+                    progress = 0f;
+                }
+                else
+                {
+                    done = true;
+                }
             }
             else
             {
-                done = true;
+                if (!VersionUtility.Instance.InIosAuditTime())
+                {
+                    VersionUtility.Instance.RequestVersionCheck();
+                    done = false;
+                    progress = 0f;
+                }
+                else
+                {
+                    done = true;
+                }
             }
-#endif
 
-#if UNITY_IOS
-            if (!VersionUtility.Instance.InIosAuditTime())
-            {
-                VersionUtility.Instance.RequestVersionCheck();
-                done = false;
-                progress = 0f;
-            }
-            else
-            {
-                done = true;
-            }
-#endif
         }
 
         public override void End()
@@ -716,8 +826,7 @@
 
     public class CheckAssetValidTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("CheckAssetValidTask_ExpectTime", 3f); }
             protected set { LocalSave.SetFloat("CheckAssetValidTask_ExpectTime", value); }
         }
@@ -774,8 +883,7 @@
 
     public class DownLoadAssetTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("DownLoadAssetTask_ExpectTime", 3f); }
             protected set { LocalSave.SetFloat("DownLoadAssetTask_ExpectTime", value); }
         }
@@ -840,8 +948,7 @@
 
     public class AssetBundleInitTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("AssetBundleInitTask_ExpectTime", 1f); }
             protected set { LocalSave.SetFloat("AssetBundleInitTask_ExpectTime", value); }
         }
@@ -894,8 +1001,7 @@
 
     public class ConfigInitTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("ConfigInitTask_ExpectTime", 10f); }
             protected set { LocalSave.SetFloat("ConfigInitTask_ExpectTime", value); }
         }
@@ -944,8 +1050,7 @@
 
     public class LaunchFadeOutTask : LaunchTask
     {
-        public override float expectTime
-        {
+        public override float expectTime {
             get { return LocalSave.GetFloat("LaunchFadeOutTask_ExpectTime", 1f); }
             protected set { LocalSave.SetFloat("LaunchFadeOutTask_ExpectTime", value); }
         }
diff --git a/Core/GameEngine/SnxxzGame.cs b/Core/GameEngine/SnxxzGame.cs
index dc8c2f2..0ed14c1 100644
--- a/Core/GameEngine/SnxxzGame.cs
+++ b/Core/GameEngine/SnxxzGame.cs
@@ -180,13 +180,13 @@
 
     private void OnApplicationPause(bool pause)
     {
-        if (!pause)
+        if (!Application.isEditor)
         {
-#if !UNITY_EDITOR && UNITY_ANDROID
-            ResolutionUtility.AdjustResolution();
-#endif
+            if (!pause)
+            {
+                ResolutionUtility.AdjustResolution();
+            }
         }
-
     }
 
     private void OnApplicationFocus(bool focus)
diff --git a/Core/SDK/SDKUtility.cs b/Core/SDK/SDKUtility.cs
index 2286e51..1c9effe 100644
--- a/Core/SDK/SDKUtility.cs
+++ b/Core/SDK/SDKUtility.cs
@@ -153,8 +153,8 @@
             builtinAssetCopyFinished = VersionConfig.Get().version == builtinAssetsCopyFinishVersion;
         }
 #endif
-#if UNITY_IOS
-        var builtinAssetsCopyFinishVersion = LocalSave.GetString("BuiltInAssetCopyCompleted_IOS");
+#if UNITY_IOS || UNITY_STANDALONE
+        var builtinAssetsCopyFinishVersion = LocalSave.GetString("BuiltInAssetCopyCompleted_IOSorStandalone");
         if (string.IsNullOrEmpty(builtinAssetsCopyFinishVersion))
         {
             builtinAssetCopyFinished = false;
@@ -164,7 +164,7 @@
             builtinAssetCopyFinished = VersionConfig.Get().version == builtinAssetsCopyFinishVersion;
         }
 
-        var assetsCopyFinishVersion = LocalSave.GetString("AssetCopyCompleted_IOS");
+        var assetsCopyFinishVersion = LocalSave.GetString("AssetCopyCompleted_IOSorStandalone");
         if (string.IsNullOrEmpty(assetsCopyFinishVersion))
         {
             AssetCopyFinished = false;
@@ -175,9 +175,7 @@
         }
 
 #elif UNITY_ANDROID
-
         SyncClientPackageID();
-
 #endif
 
         InitFinished = false;
diff --git a/System/Voice/OpusNative.cs b/System/Voice/OpusNative.cs
index 1f4a1ec..dab1fe6 100644
--- a/System/Voice/OpusNative.cs
+++ b/System/Voice/OpusNative.cs
@@ -4,14 +4,14 @@
 
 public static class OpusNative
 {
-#if UNITY_ANDROID || UNITY_EDITOR
+#if UNITY_ANDROID || UNITY_EDITOR || UNITY_STANDALONE
     [DllImport("opus")]
 #elif UNITY_IOS
     [DllImport("__Internal")]
 #endif
     public static extern int native_opus_encode(short[] pcm, int len, byte[] opus);
 
-#if UNITY_ANDROID || UNITY_EDITOR
+#if UNITY_ANDROID || UNITY_EDITOR || UNITY_STANDALONE
     [DllImport("opus")]
 #elif UNITY_IOS
     [DllImport("__Internal")]
diff --git a/System/WindowBase/OneLevelWin.cs b/System/WindowBase/OneLevelWin.cs
index f1ee312..90408a7 100644
--- a/System/WindowBase/OneLevelWin.cs
+++ b/System/WindowBase/OneLevelWin.cs
@@ -39,7 +39,12 @@
             var infos = WindowConfig.GetWindowFunctionInfos(name);
             foreach (var info in infos)
             {
-                m_Group.AddFunction("FunctionButton_Pattern_1", info.order, info.functionId, Language.Get(info.titleKey), info.redPointId);
+                var title = Language.Get(info.titleKey);
+                if (title.Length == 2)
+                {
+                    title = title.Insert(1, " ");
+                }
+                m_Group.AddFunction("FunctionButton_Pattern_1", info.order, info.functionId, title, info.redPointId);
             }
 
             m_TitleIcon.SetSprite(WindowConfig.GetTitleIconKey(name));
diff --git a/Utility/DeviceUtility.cs b/Utility/DeviceUtility.cs
index 939d569..d620f9e 100644
--- a/Utility/DeviceUtility.cs
+++ b/Utility/DeviceUtility.cs
@@ -77,10 +77,8 @@
     {
 #if UNITY_IOS
         return UnityEngine.iOS.Device.advertisingIdentifier;
-# elif UNITY_ANDROID
-        return SystemInfo.deviceUniqueIdentifier;
 #else
-        return "";
+        return SystemInfo.deviceUniqueIdentifier;
 #endif
     }
 
@@ -88,10 +86,8 @@
     {
 #if UNITY_IOS
         return UnityEngine.iOS.Device.systemVersion;
-# elif UNITY_ANDROID
-        return SystemInfo.operatingSystem;
 #else
-        return "";
+        return SystemInfo.operatingSystem;
 #endif
     }
 
@@ -99,10 +95,8 @@
     {
 #if UNITY_IOS
         return UnityEngine.iOS.Device.generation.ToString();
-#elif UNITY_ANDROID
-        return SystemInfo.deviceName;
 #else
-        return "";
+        return SystemInfo.deviceName;
 #endif
     }
 
@@ -110,10 +104,8 @@
     {
 #if UNITY_IOS
         return UnityEngine.iOS.Device.generation.ToString();
-#elif UNITY_ANDROID
-        return SystemInfo.deviceModel;
 #else
-        return "";
+        return SystemInfo.deviceModel;
 #endif
     }
 
diff --git a/Utility/ExceptionCatcher.cs b/Utility/ExceptionCatcher.cs
index b4192d9..d86278f 100644
--- a/Utility/ExceptionCatcher.cs
+++ b/Utility/ExceptionCatcher.cs
@@ -19,7 +19,7 @@
 #if UNITY_ANDROID
         BuglyAgent.InitWithAppId("bff7374864");
 #elif UNITY_IPHONE || UNITY_IOS
-            BuglyAgent.InitWithAppId("553c67c376");
+        BuglyAgent.InitWithAppId("553c67c376");
 #endif
 
 #endif
diff --git a/Utility/ResolutionUtility.cs b/Utility/ResolutionUtility.cs
index fe7ad68..6f51834 100644
--- a/Utility/ResolutionUtility.cs
+++ b/Utility/ResolutionUtility.cs
@@ -1,12 +1,14 @@
 锘縰sing System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
+using System.Diagnostics;
 
 public class ResolutionUtility
 {
     public static readonly Vector2 originalResolution = new Vector2(Screen.width, Screen.height);
     public static Vector2 currentResolution = new Vector2(Screen.width, Screen.height);
 
+    [Conditional("UNITY_ANDROID")]
     public static void AdjustResolution()
     {
         Screen.SetResolution(Mathf.RoundToInt(currentResolution.x), Mathf.RoundToInt(currentResolution.y), true);

--
Gitblit v1.8.0