From c3bbfe2736a773f9f03fa25c0575608e9ee6c13c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 09 十二月 2025 17:12:38 +0800
Subject: [PATCH] 0312 优化字符串拼接 - 改名

---
 Main/System/AssetVersion/InGameDownLoad.cs                        |    4 
 Main/System/AssetVersion/AssetVersion.cs                          |   10 
 Main/System/Chat/ChatManager.cs                                   |    6 
 Main/System/CustomizedGift/CustomizedGiftChooseWin.cs             |    2 
 Main/Utility/TimeUtility.cs                                       |   34 ++--
 Main/System/AssetVersion/DownLoadAndDiscompressHotTask.cs         |    8 
 Main/System/AssetVersion/DownLoadWin.cs                           |    2 
 Main/System/ClientVersion/VersionUtility.cs                       |    6 
 Main/System/FirstCharge/FirstChargeHeroInfoWin.cs                 |    2 
 Main/System/GeneralConfig/DayRemind.cs                            |    4 
 Main/System/Mail/MailWin.cs                                       |    6 
 Main/System/TianziBillborad/TianziBillboradAwardCell.cs           |    2 
 Main/System/Mail/MailManager.cs                                   |    2 
 Main/ResModule/UILoader.cs                                        |    8 
 Main/Core/GameEngine/Launch/CheckAssetValidTask.cs                |    4 
 Main/System/Message/RichTableEvent.cs                             |   10 
 Main/System/PlayerProfile/ExchangeCodeWin.cs                      |    2 
 Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs            |    4 
 Main/System/ChallengeTab/ChallengeTabButton.cs                    |    2 
 Main/Core/Frame/UIFrameMgr.cs                                     |    2 
 Main/System/Store/StoreModel.cs                                   |    2 
 Main/Component/UI/Common/EnableButtonConfig.cs                    |    2 
 Main/Core/NetworkPackage/NetPkgCtl.cs                             |    4 
 Main/Component/UI/Common/CoolDownBehaviour.cs                     |    2 
 Main/Component/UI/Common/TimerToChsBehaviour.cs                   |    2 
 Main/System/AssetVersion/AssetVersionUtility.cs                   |   28 ++--
 Main/System/Launch/LoadingWin.cs                                  |    2 
 Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs               |   24 +-
 Main/ResModule/BuiltInLoader.cs                                   |   16 +-
 Main/System/FirstCharge/FirstChargeManager.cs                     |    2 
 Main/System/AssetVersion/InGameDownLoadWin.cs                     |    2 
 Main/System/Message/RichNormalEvent.cs                            |    8 
 Main/System/PlayerProfile/RenameManager.cs                        |    2 
 Main/System/Setting/QuickSetting.cs                               |    2 
 Main/System/Login/ServerListCenter.cs                             |    2 
 Main/System/PhantasmPavilion/AvatarHelper.cs                      |    2 
 Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs          |    2 
 Main/Utility/UIHelper.cs                                          |   98 +++++++-------
 Main/ResModule/AssetBundle/AssetBundleUtility.cs                  |   10 
 Main/System/PhantasmPavilion/PhantasmPavilionInfoCell.cs          |    2 
 Main/System/Launch/LaunchWin.cs                                   |   12 
 Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs  |    4 
 Main/System/OpenServerActivity/OperationTimeHepler.cs             |    6 
 Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs |    2 
 Main/System/AssetVersion/InGameDownLoadProgress.cs                |    4 
 Main/Core/ResModule/ScriptableObjectLoader.cs                     |    2 
 Main/System/HeroUI/HeroUIManager.cs                               |    4 
 Main/Utility/UIParamCopyTool.cs                                   |    4 
 48 files changed, 186 insertions(+), 186 deletions(-)

diff --git a/Main/Component/UI/Common/CoolDownBehaviour.cs b/Main/Component/UI/Common/CoolDownBehaviour.cs
index 95fdd6e..2f9f4d5 100644
--- a/Main/Component/UI/Common/CoolDownBehaviour.cs
+++ b/Main/Component/UI/Common/CoolDownBehaviour.cs
@@ -56,7 +56,7 @@
                 {
                     timer = 1f;
                     var seconds = Mathf.RoundToInt(m_ButtonEx.ableTime - Time.realtimeSinceStartup);
-                    m_CoolDownText.text = StringUtility.Contact(seconds.ToString(), Language.Get("RealmWin_Bewrite_35"));
+                    m_CoolDownText.text = StringUtility.Concat(seconds.ToString(), Language.Get("RealmWin_Bewrite_35"));
                 }
             }
             else
diff --git a/Main/Component/UI/Common/EnableButtonConfig.cs b/Main/Component/UI/Common/EnableButtonConfig.cs
index 4c7bf9f..0605280 100644
--- a/Main/Component/UI/Common/EnableButtonConfig.cs
+++ b/Main/Component/UI/Common/EnableButtonConfig.cs
@@ -31,7 +31,7 @@
         {
             return dict[_type];
         }
-        var _cfg= BuiltInLoader.LoadScriptableObject<EnableButtonConfig>(StringUtility.Contact("EnableButton_", _type.ToString()));
+        var _cfg= BuiltInLoader.LoadScriptableObject<EnableButtonConfig>(StringUtility.Concat("EnableButton_", _type.ToString()));
         dict.Add(_type, _cfg);
         return _cfg;
     }
diff --git a/Main/Component/UI/Common/TimerToChsBehaviour.cs b/Main/Component/UI/Common/TimerToChsBehaviour.cs
index 13cbf73..1c98852 100644
--- a/Main/Component/UI/Common/TimerToChsBehaviour.cs
+++ b/Main/Component/UI/Common/TimerToChsBehaviour.cs
@@ -11,7 +11,7 @@
     protected override void UpdateTimeShow()
     {
         var lastSecond = (endTime - TimeUtility.ServerNow).TotalSeconds;
-        m_TimeShow.text = StringUtility.Contact(TimeUtility.SecondsToDHMSCHS((int)lastSecond), addtionInfo);
+        m_TimeShow.text = StringUtility.Concat(TimeUtility.SecondsToDHMSCHS((int)lastSecond), addtionInfo);
     }
 }
 
diff --git a/Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs b/Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs
index 11cb7b4..f95c3bd 100644
--- a/Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs
+++ b/Main/Config/PartialConfigs/RichTextMsgReplaceConfig.cs
@@ -8,13 +8,13 @@
 
     protected override void OnConfigParseCompleted()
     {
-        m_ReplaceCfgs.Add(StringUtility.Contact(Identification, Number.ToString()), this);
+        m_ReplaceCfgs.Add(StringUtility.Concat(Identification, Number.ToString()), this);
     }
 
     public static string GetRichReplace(string identify, int number)
     {
         RichTextMsgReplaceConfig replace = null;
-        m_ReplaceCfgs.TryGetValue(StringUtility.Contact(identify, number.ToString()), out replace);
+        m_ReplaceCfgs.TryGetValue(StringUtility.Concat(identify, number.ToString()), out replace);
         if (replace != null)
         {
             return replace.Content;
diff --git a/Main/Core/Frame/UIFrameMgr.cs b/Main/Core/Frame/UIFrameMgr.cs
index 34d5837..df23859 100644
--- a/Main/Core/Frame/UIFrameMgr.cs
+++ b/Main/Core/Frame/UIFrameMgr.cs
@@ -57,7 +57,7 @@
         for (int i = 1; i <= cfg.frameCnt; i++)
         {
             string spritePath = "Sprite/" + cfg.folder;
-            string spriteName = StringUtility.Contact(cfg.name, "_", i.ToString());
+            string spriteName = StringUtility.Concat(cfg.name, "_", i.ToString());
             
             Sprite sprite = ResManager.Instance.LoadAsset<Sprite>(spritePath, spriteName);
             if (sprite != null)
diff --git a/Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs b/Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs
index 4ace76f..19afb39 100644
--- a/Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs
+++ b/Main/Core/GameEngine/Launch/BuiltInAssetCopyTask.cs
@@ -170,28 +170,28 @@
 
                 var fileNames = new List<string>();
                 //var files = new List<FileInfo>();
-                //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files);
+                //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(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(StringUtility.Concat("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);
+                FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles);
                 foreach (var file in configFiles)
                 {
                     var name = Path.GetFileName(file.FullName);
-                    fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar.ToString(), name));
+                    fileNames.Add(StringUtility.Concat("config", Path.DirectorySeparatorChar.ToString(), name));
                 }
 
                 foreach (var item in fileNames)
                 {
-                    var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item);
-                    var toPath = StringUtility.Contact(targetDirectory, item);
+                    var fromPath = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, item);
+                    var toPath = StringUtility.Concat(targetDirectory, item);
 
                     var destDirectoryName = Path.GetDirectoryName(toPath);
                     if (!Directory.Exists(destDirectoryName))
@@ -217,28 +217,28 @@
 
         var fileNames = new List<string>();
         //var files = new List<FileInfo>();
-        //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "builtin"), files);
+        //FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(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(StringUtility.Concat("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);
+        FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, "config"), configFiles);
         foreach (var file in configFiles)
         {
             var name = Path.GetFileName(file.FullName);
-            fileNames.Add(StringUtility.Contact("config", Path.DirectorySeparatorChar.ToString(), name));
+            fileNames.Add(StringUtility.Concat("config", Path.DirectorySeparatorChar.ToString(), name));
         }
 
         foreach (var item in fileNames)
         {
-            var fromPath = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, item);
-            var toPath = StringUtility.Contact(targetDirectory, item);
+            var fromPath = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, item);
+            var toPath = StringUtility.Concat(targetDirectory, item);
 
             if (File.Exists(toPath))
             {
diff --git a/Main/Core/GameEngine/Launch/CheckAssetValidTask.cs b/Main/Core/GameEngine/Launch/CheckAssetValidTask.cs
index 9c9e358..2b07401 100644
--- a/Main/Core/GameEngine/Launch/CheckAssetValidTask.cs
+++ b/Main/Core/GameEngine/Launch/CheckAssetValidTask.cs
@@ -24,8 +24,8 @@
 
         if (VersionUtility.Instance.NeedDownAsset())
         {
-            var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/config/PriorBundle.txt");
-            var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, "config/PriorBundle.txt");
+            var remoteURL = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/config/PriorBundle.txt");
+            var localURL = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, "config/PriorBundle.txt");
             var downloadTask = new DownloadHotTask(remoteURL, localURL);
             downloadTask.BeginDownload(AssetVersionUtility.OnDownLoadPriorBundle);
 
diff --git a/Main/Core/NetworkPackage/NetPkgCtl.cs b/Main/Core/NetworkPackage/NetPkgCtl.cs
index fb19e74..fa6b2cd 100644
--- a/Main/Core/NetworkPackage/NetPkgCtl.cs
+++ b/Main/Core/NetworkPackage/NetPkgCtl.cs
@@ -25,7 +25,7 @@
             var byteStr = package.content.Split(' ');
             if (byteStr.Length > 1)
             {
-                package.name = StringUtility.Contact("H", byteStr[0], byteStr[1], "(鏈敞鍐�)");
+                package.name = StringUtility.Concat("H", byteStr[0], byteStr[1], "(鏈敞鍐�)");
             }
         }
         else
@@ -78,7 +78,7 @@
                 {
                     for (int j = 0; j < package.fieldDetails.Count; j++)
                     {
-                        line = StringUtility.Contact(line, "\t\t\t", package.fieldDetails[j], "\r\n");
+                        line = StringUtility.Concat(line, "\t\t\t", package.fieldDetails[j], "\r\n");
                     }
                 }
 
diff --git a/Main/Core/ResModule/ScriptableObjectLoader.cs b/Main/Core/ResModule/ScriptableObjectLoader.cs
index bb9ea76..805f15b 100644
--- a/Main/Core/ResModule/ScriptableObjectLoader.cs
+++ b/Main/Core/ResModule/ScriptableObjectLoader.cs
@@ -31,7 +31,7 @@
         }
         else
         {
-            var assetName = StringUtility.Contact(SoNewBieGuide_Suffix, _id.ToString());
+            var assetName = StringUtility.Concat(SoNewBieGuide_Suffix, _id.ToString());
             var assetInfo = new AssetInfo(bundleName, assetName);
             config = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as NewBieGuideScriptableObject;
         }
diff --git a/Main/ResModule/AssetBundle/AssetBundleUtility.cs b/Main/ResModule/AssetBundle/AssetBundleUtility.cs
index 8f8fae0..eca08d2 100644
--- a/Main/ResModule/AssetBundle/AssetBundleUtility.cs
+++ b/Main/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -19,7 +19,7 @@
 
     public void InitBuiltInAsset()
     {
-        var path = AssetVersionUtility.GetBuiltInAssetFilePath(StringUtility.Contact(AssetVersionUtility.EncodeFileName("builtin"), "_assetbundle"), false);
+        var path = AssetVersionUtility.GetBuiltInAssetFilePath(StringUtility.Concat(AssetVersionUtility.EncodeFileName("builtin"), "_assetbundle"), false);
         var assetBundle = AssetBundle.LoadFromFile(path);
         if (assetBundle == null)
         {
@@ -51,7 +51,7 @@
         // CloseAllIgnoreWindowConfig.Release();
         UnloadAssetBundle("builtin/scriptableobjects", true, false);
 
-        var path = AssetVersionUtility.GetBuiltInAssetFilePath(StringUtility.Contact(AssetVersionUtility.EncodeFileName("builtin"), "_assetbundle"), false);
+        var path = AssetVersionUtility.GetBuiltInAssetFilePath(StringUtility.Concat(AssetVersionUtility.EncodeFileName("builtin"), "_assetbundle"), false);
         var assetBundle = AssetBundle.LoadFromFile(path);
         if (assetBundle == null)
         {
@@ -116,7 +116,7 @@
 
     private async UniTask Co_LoadMainfestFile(string _category)
     {
-        var path = AssetVersionUtility.GetAssetFilePath(StringUtility.Contact(AssetVersionUtility.EncodeFileName(_category), "_assetbundle"), false);
+        var path = AssetVersionUtility.GetAssetFilePath(StringUtility.Concat(AssetVersionUtility.EncodeFileName(_category), "_assetbundle"), false);
         var _assetBundle = AssetBundle.LoadFromFile(path);
 
         if (_assetBundle == null)
@@ -501,7 +501,7 @@
 #if UNITY_5||UNITY_5_3_OR_NEWER
         assetBundleName = assetBundleName.ToLower();
 #endif
-        string _assembleName = StringUtility.Contact(assetBundleName, "@", assetName);
+        string _assembleName = StringUtility.Concat(assetBundleName, "@", assetName);
 
         if (JudgeExistAsset(assetBundleName, assetName) == false)
         {
@@ -677,7 +677,7 @@
 
         m_AssetDict[assetBundleName][assetName] = asset;
 
-        string _assembleName = StringUtility.Contact(assetBundleName, "@", assetName);
+        string _assembleName = StringUtility.Concat(assetBundleName, "@", assetName);
         if (m_AssetInfoDict.ContainsKey(_assembleName) == false)
         {
             AssetInfo _assetInfo = new AssetInfo(assetBundleName, assetName);
diff --git a/Main/ResModule/BuiltInLoader.cs b/Main/ResModule/BuiltInLoader.cs
index 8baa053..f39c7c1 100644
--- a/Main/ResModule/BuiltInLoader.cs
+++ b/Main/ResModule/BuiltInLoader.cs
@@ -17,9 +17,9 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            if (excludePngs.Contains(StringUtility.Contact(name, SPRITE_EXTENSION)))
+            if (excludePngs.Contains(StringUtility.Concat(name, SPRITE_EXTENSION)))
             {
-                var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
+                var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, SPRITE_EXTENSION);
                 path = System.Text.RegularExpressions.Regex.Replace(path, @"[\p{C}]", "");
                 sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
             }
@@ -56,7 +56,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
+            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, PREFAB_EXTENSION);
             prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
 #endif
         }
@@ -88,7 +88,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Musics/", name, AUDIO_EXTENSION);
+            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Musics/", name, AUDIO_EXTENSION);
             audioClip = UnityEditor.AssetDatabase.LoadAssetAtPath<AudioClip>(path);
 #endif
         }
@@ -112,7 +112,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
+            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/AnimationClips/", name, ".anim");
             clip = UnityEditor.AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
 #endif
         }
@@ -136,7 +136,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var path = StringUtility.Contact("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
+            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Materials/", name, ".mat");
             material = UnityEditor.AssetDatabase.LoadAssetAtPath<Material>(path);
 #endif
         }
@@ -161,7 +161,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+            var resourcePath = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
                                                    "BuiltIn/ScriptableObjects/", name, ".asset");
 
             config = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(resourcePath);
@@ -187,7 +187,7 @@
         if (!AssetSource.isUseAssetBundle)
         {
 #if UNITY_EDITOR
-            var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+            var path = StringUtility.Concat(ResourcesPath.ResourcesOutAssetPath,
                                        "BuiltIn/Font/", fontName, ".ttf");
             font = UnityEditor.AssetDatabase.LoadAssetAtPath<Font>(path);
 #endif
diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs
index 7e8e0d7..4cdbc95 100644
--- a/Main/ResModule/UILoader.cs
+++ b/Main/ResModule/UILoader.cs
@@ -38,7 +38,7 @@
 
     public static Sprite LoadSprite(string _folder, string _file)
     {
-        return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file);
+        return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file);
     }
 
     public static void UnLoadSprite(string _iconKey)
@@ -46,7 +46,7 @@
         var iconConfig = IconConfig.Get(_iconKey);
         if (iconConfig != null)
         {
-            var bundleName = StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder);
+            var bundleName = StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder);
             ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite);
         }
     }
@@ -68,11 +68,11 @@
         {
             return null;
         }
-        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
+        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
     }
     
     public static Texture2D LoadTexture2DPNG(string name)
     {
-        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
+        return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
     }
 }
diff --git a/Main/System/AssetVersion/AssetVersion.cs b/Main/System/AssetVersion/AssetVersion.cs
index ea58d10..2d98fd1 100644
--- a/Main/System/AssetVersion/AssetVersion.cs
+++ b/Main/System/AssetVersion/AssetVersion.cs
@@ -82,7 +82,7 @@
     {
         if (_completeFile)
         {
-            var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
+            var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
             var fileInfo = new FileInfo(path);
 
             if (!fileInfo.Exists)
@@ -107,7 +107,7 @@
         {
             if (extersion == ".manifest" || extersion == ".bytes" || extersion == ".txt" || extersion == ".dll")
             {
-                var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
+                var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
                 var fileInfo = new FileInfo(path);
 
                 if (!fileInfo.Exists || fileInfo.Length != size || md5 != FileExtersion.GetMD5HashFromFile(path))
@@ -117,10 +117,10 @@
             }
             else if (string.IsNullOrEmpty(extersion) || extersion.Length == 0)
             {
-                var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
+                var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
                 var fileInfo = new FileInfo(path);
 
-                var manifestAssetVersion = AssetVersionUtility.GetAssetVersion(StringUtility.Contact(m_RelativePath, ".manifest"));
+                var manifestAssetVersion = AssetVersionUtility.GetAssetVersion(StringUtility.Concat(m_RelativePath, ".manifest"));
                 if (!fileInfo.Exists || fileInfo.Length != size || manifestAssetVersion == null || !manifestAssetVersion.CheckLocalFileValid(false))
                 {
                     return false;
@@ -128,7 +128,7 @@
             }
             else
             {
-                var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
+                var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, m_RelativePath);
                 var fileInfo = new FileInfo(path);
                 if (!fileInfo.Exists || fileInfo.Length != size)
                 {
diff --git a/Main/System/AssetVersion/AssetVersionUtility.cs b/Main/System/AssetVersion/AssetVersionUtility.cs
index 560e381..c2f3d2f 100644
--- a/Main/System/AssetVersion/AssetVersionUtility.cs
+++ b/Main/System/AssetVersion/AssetVersionUtility.cs
@@ -87,7 +87,7 @@
     {
         checkAssetCompleted = false;
         Debug.LogFormat("寮�濮嬭幏鍙栬祫婧愮増鏈枃浠讹細鏃堕棿 {0}", DateTime.Now);
-        var assetVersionUrl = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/AssetsVersion.txt");
+        var assetVersionUrl = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/AssetsVersion.txt");
         assetVerUrl = assetVersionUrl;
         Debug.Log("http鍦板潃:assetVersionUrl  " + assetVersionUrl);
         HttpRequest.Instance.UnityWebRequestGet(assetVersionUrl, 5, OnGetAssetVersionFile);
@@ -258,7 +258,7 @@
         //     return false;
         // }
 
-        // if (!IsAssetValid(StringUtility.Contact("maps/", mapResConfig.MapResources.ToLower())))
+        // if (!IsAssetValid(StringUtility.Concat("maps/", mapResConfig.MapResources.ToLower())))
         // {
         //     return false;
         // }
@@ -279,8 +279,8 @@
         //             var npcConfig = NPCConfig.Get(item);
         //             if (npcConfig != null)
         //             {
-        //                 var assetbundleName = StringUtility.Contact("prefab_race_", npcConfig.MODE.ToLower());
-        //                 if (!IsAssetValid(StringUtility.Contact("gmodels/", assetbundleName)))
+        //                 var assetbundleName = StringUtility.Concat("prefab_race_", npcConfig.MODE.ToLower());
+        //                 if (!IsAssetValid(StringUtility.Concat("gmodels/", assetbundleName)))
         //                 {
         //                     return false;
         //                 }
@@ -306,26 +306,26 @@
         //    {
         //        headString = name.Substring(0, index);
         //        name = name.Substring(index + 1);
-        //        return StringUtility.Contact(headString, "/", new string(name.Reverse().ToArray()), "_aop");
+        //        return StringUtility.Concat(headString, "/", new string(name.Reverse().ToArray()), "_aop");
         //    }
         //    else
         //    {
         //        headString = name.Substring(0, index);
         //        var ext = name.Substring(dotLastIndex);
         //        name = name.Substring(index + 1, dotLastIndex - index - 1);
-        //        return StringUtility.Contact(headString, "/", new string(name.Reverse().ToArray()), "_aop", ext);
+        //        return StringUtility.Concat(headString, "/", new string(name.Reverse().ToArray()), "_aop", ext);
         //    }
         //}
         //else
         //{
         //    int dotLastIndex = name.LastIndexOf(".");
         //    if (dotLastIndex == -1)
-        //        return StringUtility.Contact(new string(name.Reverse().ToArray()), "_aop");
+        //        return StringUtility.Concat(new string(name.Reverse().ToArray()), "_aop");
         //    else
         //    {
         //        var ext = name.Substring(dotLastIndex);
         //        name = name.Substring(0, dotLastIndex);
-        //        return StringUtility.Contact(new string(name.Reverse().ToArray()), "_aop", ext);
+        //        return StringUtility.Concat(new string(name.Reverse().ToArray()), "_aop", ext);
         //    }
         //}
 
@@ -344,14 +344,14 @@
         //    {
         //        headString = name.Substring(0, index);
         //        name = name.Substring(index + 1);
-        //        return StringUtility.Contact(headString, "/", new string(name.Replace("_aop", "").Reverse().ToArray()));
+        //        return StringUtility.Concat(headString, "/", new string(name.Replace("_aop", "").Reverse().ToArray()));
         //    }
         //    else
         //    {
         //        headString = name.Substring(0, index);
         //        var ext = name.Substring(dotLastIndex);
         //        name = name.Substring(index + 1, dotLastIndex - index - 1);
-        //        return StringUtility.Contact(headString, "/", new string(name.Replace("_aop", "").Reverse().ToArray()), ext);
+        //        return StringUtility.Concat(headString, "/", new string(name.Replace("_aop", "").Reverse().ToArray()), ext);
         //    }
         //}
         //else
@@ -373,10 +373,10 @@
     {
         if (reverse)
             _assetKey = EncodeFileName(_assetKey);
-        var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, _assetKey);
+        var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, _assetKey);
         if (!File.Exists(path))
         {
-            path = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, _assetKey);
+            path = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, _assetKey);
         }
 
         return path;
@@ -386,10 +386,10 @@
     {
         if (reverse)
             _assetKey = EncodeFileName(_assetKey);
-        var path = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, _assetKey);
+        var path = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, _assetKey);
         if (!File.Exists(path))
         {
-            path = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, _assetKey);
+            path = StringUtility.Concat(ResourcesPath.Instance.StreamingAssetPath, _assetKey);
         }
 
         return path;
diff --git a/Main/System/AssetVersion/DownLoadAndDiscompressHotTask.cs b/Main/System/AssetVersion/DownLoadAndDiscompressHotTask.cs
index 976abbc..97f8daf 100644
--- a/Main/System/AssetVersion/DownLoadAndDiscompressHotTask.cs
+++ b/Main/System/AssetVersion/DownLoadAndDiscompressHotTask.cs
@@ -98,8 +98,8 @@
             for (int i = 0; i < tasks.Count; i++)
             {
                 var assetVersion = tasks[i];
-                var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/", assetVersion.relativePath);
-                var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
+                var remoteURL = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/", assetVersion.relativePath);
+                var localURL = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
                 DownloadHotMgr.Instance.AddTask(new DownloadHotTask(remoteURL, localURL));
             }
 
@@ -175,8 +175,8 @@
     //     else
     //     {
     //         ExceptionCatcher.ReportException("娓告垙鍚姩闃舵鏂囦欢涓嬭浇澶辫触", "鏂囦欢鍚嶏細" + _assetVersion.relativePath);
-    //         var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", Language.Id, "/", _assetVersion.relativePath);
-    //         var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, _assetVersion.relativePath);
+    //         var remoteURL = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), "/", Language.Id, "/", _assetVersion.relativePath);
+    //         var localURL = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, _assetVersion.relativePath);
 
     //         var remoteFile = new RemoteFile();
     //         remoteFile.Init(remoteURL, localURL, _assetVersion);
diff --git a/Main/System/AssetVersion/DownLoadWin.cs b/Main/System/AssetVersion/DownLoadWin.cs
index 620b8e1..1fe58f3 100644
--- a/Main/System/AssetVersion/DownLoadWin.cs
+++ b/Main/System/AssetVersion/DownLoadWin.cs
@@ -90,7 +90,7 @@
 
                 if (downLoadedSize >= DownLoadAndDiscompressHotTask.Instance.totalSize)
                 {
-                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
+                    m_DownLoadSpeed.text = StringUtility.Concat(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
                 }
                 else
                 {
diff --git a/Main/System/AssetVersion/InGameDownLoad.cs b/Main/System/AssetVersion/InGameDownLoad.cs
index 49cc231..6e9d7b0 100644
--- a/Main/System/AssetVersion/InGameDownLoad.cs
+++ b/Main/System/AssetVersion/InGameDownLoad.cs
@@ -154,8 +154,8 @@
             totalSize += assetVersion.size;//缁熻璧勬簮鎬诲ぇ灏�
 
             //娣诲姞涓嬭浇浠诲姟
-            var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/", assetVersion.relativePath);
-            var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
+            var remoteURL = StringUtility.Concat(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/", assetVersion.relativePath);
+            var localURL = StringUtility.Concat(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath);
             DownloadHotMgr.Instance.AddTask(new DownloadHotTask(remoteURL, localURL, assetVersion));
         }
 
diff --git a/Main/System/AssetVersion/InGameDownLoadProgress.cs b/Main/System/AssetVersion/InGameDownLoadProgress.cs
index 06535cb..39c7d4b 100644
--- a/Main/System/AssetVersion/InGameDownLoadProgress.cs
+++ b/Main/System/AssetVersion/InGameDownLoadProgress.cs
@@ -32,7 +32,7 @@
             else
             {
                 var progress = Mathf.RoundToInt(InGameDownLoad.Instance.progress * 100);
-                m_ProgressText.text = StringUtility.Contact(progress.ToString(), "%");
+                m_ProgressText.text = StringUtility.Concat(progress.ToString(), "%");
             }
         }
         else
@@ -113,7 +113,7 @@
             else
             {
                 var progress = Mathf.RoundToInt(InGameDownLoad.Instance.progress * 100);
-                m_ProgressText.text = StringUtility.Contact(Mathf.Clamp(progress, 0, 99).ToString(), "%");
+                m_ProgressText.text = StringUtility.Concat(Mathf.Clamp(progress, 0, 99).ToString(), "%");
             }
         }
     }
diff --git a/Main/System/AssetVersion/InGameDownLoadWin.cs b/Main/System/AssetVersion/InGameDownLoadWin.cs
index 6887459..52daaa5 100644
--- a/Main/System/AssetVersion/InGameDownLoadWin.cs
+++ b/Main/System/AssetVersion/InGameDownLoadWin.cs
@@ -123,7 +123,7 @@
 
                 if (InGameDownLoad.Instance.showDownLoadedSize >= InGameDownLoad.Instance.showTotalSize)
                 {
-                    m_DownLoadSpeed.text = StringUtility.Contact(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
+                    m_DownLoadSpeed.text = StringUtility.Concat(UnityEngine.Random.Range(5, 10).ToString(), "KB/S");
                 }
                 else
                 {
diff --git a/Main/System/ChallengeTab/ChallengeTabButton.cs b/Main/System/ChallengeTab/ChallengeTabButton.cs
index e007215..591620d 100644
--- a/Main/System/ChallengeTab/ChallengeTabButton.cs
+++ b/Main/System/ChallengeTab/ChallengeTabButton.cs
@@ -68,7 +68,7 @@
         txtLockInfo.SetActive(!isOpen);
 
         // 璁剧疆鍥炬爣鍜屽悕绉�
-        string spriteAndLangKey = StringUtility.Contact("ChallengeTab", data.Index.ToString());
+        string spriteAndLangKey = StringUtility.Concat("ChallengeTab", data.Index.ToString());
         imgIcon.SetSprite(spriteAndLangKey);
         txtName.text = Language.Get(spriteAndLangKey);
 
diff --git a/Main/System/Chat/ChatManager.cs b/Main/System/Chat/ChatManager.cs
index 376dbf9..e9f22b0 100644
--- a/Main/System/Chat/ChatManager.cs
+++ b/Main/System/Chat/ChatManager.cs
@@ -534,19 +534,19 @@
 
     public string GetChatTabName(ChatTab chatTab)
     {
-        return Language.Get(StringUtility.Contact("ChatTab", ((int)chatTab).ToString()));
+        return Language.Get(StringUtility.Concat("ChatTab", ((int)chatTab).ToString()));
     }
 
     public string GetChatTabSelectIcon(ChatTab chatTab, bool isSelect)
     {
-        return StringUtility.Contact(isSelect ? "ChatTabSelect" : "ChatTabUnSelect", ((int)chatTab).ToString());
+        return StringUtility.Concat(isSelect ? "ChatTabSelect" : "ChatTabUnSelect", ((int)chatTab).ToString());
     }
     #endregion
     #region 寮瑰箷璁剧疆
 
     private Dictionary<ChatChannel, bool> bulletSettingDict = new Dictionary<ChatChannel, bool>();
 
-    private string settingsKey { get { return StringUtility.Contact("BulletChatSettings_", PlayerDatas.Instance.PlayerId.ToString()); } }
+    private string settingsKey { get { return StringUtility.Concat("BulletChatSettings_", PlayerDatas.Instance.PlayerId.ToString()); } }
 
     // 璁剧疆鐗瑰畾棰戦亾鐨勫脊骞曞紑鍏崇姸鎬�
     public void SetBulletSetting(ChatChannel channelType, bool isEnabled)
diff --git a/Main/System/ClientVersion/VersionUtility.cs b/Main/System/ClientVersion/VersionUtility.cs
index 0a79593..59798e7 100644
--- a/Main/System/ClientVersion/VersionUtility.cs
+++ b/Main/System/ClientVersion/VersionUtility.cs
@@ -18,7 +18,7 @@
     public static readonly string[] VERSION_URL = new string[] {
         "http://xssgcenter.secondworld.net.cn:11000/center/appversion_new.php/?"};
 
-    public string androidRoot { get { return string.Empty;/*StringUtility.Contact(SDKUtils.Instance.DeviceRootPath, "/", VersionConfig.Get().bundleIdentifier);*/ } }
+    public string androidRoot { get { return string.Empty;/*StringUtility.Concat(SDKUtils.Instance.DeviceRootPath, "/", VersionConfig.Get().bundleIdentifier);*/ } }
 
     public DownloadHotTask downloadTask;
     private string versionUrl;
@@ -66,7 +66,7 @@
 
         //tables["game"] = VersionConfig.Get().gameId;
 
-        //var url = StringUtility.Contact(VERSION_URL[urlIndex % 2], HttpRequest.HashtablaToString(tables));
+        //var url = StringUtility.Concat(VERSION_URL[urlIndex % 2], HttpRequest.HashtablaToString(tables));
         //urlIndex++;
         //versionUrl = url;
         //Debug.Log("http鍦板潃:versionUrl  " + url);
@@ -143,7 +143,7 @@
             return string.Empty;
         var remoteURL = GetApkRemoteUrl();
         var fileName = Path.GetFileName(remoteURL);
-        return StringUtility.Contact(androidRoot, "/", fileName);
+        return StringUtility.Concat(androidRoot, "/", fileName);
     }
 
     public string GetApkRemoteUrl()
diff --git a/Main/System/CustomizedGift/CustomizedGiftChooseWin.cs b/Main/System/CustomizedGift/CustomizedGiftChooseWin.cs
index 08a975b..ec98e16 100644
--- a/Main/System/CustomizedGift/CustomizedGiftChooseWin.cs
+++ b/Main/System/CustomizedGift/CustomizedGiftChooseWin.cs
@@ -142,7 +142,7 @@
         {
             txtTitle.SetActive(true);
             txtInfo.SetActive(true);
-            txtTitle.text = StringUtility.Contact(ItemConfig.Get(selectItemID).ItemName, " x", selectIemCount.ToString());
+            txtTitle.text = StringUtility.Concat(ItemConfig.Get(selectItemID).ItemName, " x", selectIemCount.ToString());
             txtInfo.text = ItemConfig.Get(selectItemID).Description;
         }
         else
diff --git a/Main/System/FirstCharge/FirstChargeHeroInfoWin.cs b/Main/System/FirstCharge/FirstChargeHeroInfoWin.cs
index 22252ac..59990e4 100644
--- a/Main/System/FirstCharge/FirstChargeHeroInfoWin.cs
+++ b/Main/System/FirstCharge/FirstChargeHeroInfoWin.cs
@@ -59,7 +59,7 @@
         itemCell.Init(new ItemCellModel((int)FirstChargeManager.Instance.heroItemID, true, 1));
         txtName.text = Language.Get("FirstCharge09", Language.Get("CommonQuality" + heroInfo.Quality),heroInfo.heroConfig.Name); 
         txtName.color = UIHelper.GetUIColorByFunc(heroInfo.Quality);
-        txtJob.text = Language.Get("FirstCharge06",Language.Get(StringUtility.Contact("HeroClass",heroInfo.heroConfig.Class.ToString())));
+        txtJob.text = Language.Get("FirstCharge06",Language.Get(StringUtility.Concat("HeroClass",heroInfo.heroConfig.Class.ToString())));
         txtDesc.text = Language.Get("FirstCharge07",heroInfo.heroConfig.Desc);
     }
     
diff --git a/Main/System/FirstCharge/FirstChargeManager.cs b/Main/System/FirstCharge/FirstChargeManager.cs
index a9e441d..7eea873 100644
--- a/Main/System/FirstCharge/FirstChargeManager.cs
+++ b/Main/System/FirstCharge/FirstChargeManager.cs
@@ -329,7 +329,7 @@
         OnUpdateFirstChargeInfo?.Invoke();
     }
 
-    public string key { get { return StringUtility.Contact("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID.ToString()); } }
+    public string key { get { return StringUtility.Concat("FirstCharge_AllRewardsClaimed_Time_", PlayerDatas.Instance.baseData.PlayerID.ToString()); } }
 
     /// <summary>
     /// 妫�鏌ユ槸鍚︽墍鏈夐鍏呭鍔遍兘宸查鍙栵紝濡傛灉鏄紝鍒欏皢褰撳墠鏈嶅姟鍣ㄦ椂闂翠繚瀛樺埌鏈湴
diff --git a/Main/System/GeneralConfig/DayRemind.cs b/Main/System/GeneralConfig/DayRemind.cs
index 7667136..1dd503f 100644
--- a/Main/System/GeneralConfig/DayRemind.cs
+++ b/Main/System/GeneralConfig/DayRemind.cs
@@ -69,7 +69,7 @@
         intarray[0] = TimeUtility.ServerNow.Month;
         intarray[1] = TimeUtility.ServerNow.Day;
         intarray[2] = _remind ? 1 : 0;
-        LocalSave.SetIntArray(StringUtility.Contact(_remindKey, PlayerDatas.Instance.baseData.PlayerID.ToString()), intarray);
+        LocalSave.SetIntArray(StringUtility.Concat(_remindKey, PlayerDatas.Instance.baseData.PlayerID.ToString()), intarray);
     }
 
     private void GetPlayerDayRemind()
@@ -80,7 +80,7 @@
 
     public void SetDayRemind(string _key)
     {
-        var intarray = LocalSave.GetIntArray(StringUtility.Contact(_key, PlayerDatas.Instance.baseData.PlayerID.ToString()));
+        var intarray = LocalSave.GetIntArray(StringUtility.Concat(_key, PlayerDatas.Instance.baseData.PlayerID.ToString()));
         if (dayRemindDic.ContainsKey(_key))
         {
             dayRemindDic[_key] = intarray;
diff --git a/Main/System/HeroUI/HeroUIManager.cs b/Main/System/HeroUI/HeroUIManager.cs
index 1992e38..f877583 100644
--- a/Main/System/HeroUI/HeroUIManager.cs
+++ b/Main/System/HeroUI/HeroUIManager.cs
@@ -168,12 +168,12 @@
 
     public string GetCountryIconName(int index)
     {
-        return StringUtility.Contact("herocountry", index.ToString());
+        return StringUtility.Concat("herocountry", index.ToString());
     }
 
     public string GetJobIconName(int index)
     {
-        return StringUtility.Contact("herojob", index.ToString());
+        return StringUtility.Concat("herojob", index.ToString());
     }
 
     public int GetMaxLV(int quality)
diff --git a/Main/System/Launch/LaunchWin.cs b/Main/System/Launch/LaunchWin.cs
index 871de6c..0476ddb 100644
--- a/Main/System/Launch/LaunchWin.cs
+++ b/Main/System/Launch/LaunchWin.cs
@@ -52,7 +52,7 @@
             // {
             //     for (var i = 0; i < 3; i++)
             //     {
-            //         var sprite = BuiltInLoader.LoadSprite(StringUtility.Contact("Launch_", i + 1));
+            //         var sprite = BuiltInLoader.LoadSprite(StringUtility.Concat("Launch_", i + 1));
             //         if (sprite != null)
             //         {
             //             backGrounds.Add(sprite);
@@ -151,9 +151,9 @@
                 case LaunchStage.SDKInit:
                     return Language.GetFromLocal(36);
                 case LaunchStage.AssetCopy:
-                    return StringUtility.Contact(Language.GetFromLocal(37), "(", step.ToString(), ")");
+                    return StringUtility.Concat(Language.GetFromLocal(37), "(", step.ToString(), ")");
                 case LaunchStage.AssetDecompress:
-                    return StringUtility.Contact(Language.GetFromLocal(38), "(", step.ToString(), ")");
+                    return StringUtility.Concat(Language.GetFromLocal(38), "(", step.ToString(), ")");
                 case LaunchStage.ClientVersion:
                     return Language.GetFromLocal(39);
                 case LaunchStage.CheckAsset:
@@ -163,7 +163,7 @@
                 case LaunchStage.AssetBundleInit:
                     return Language.GetFromLocal(42);
                 case LaunchStage.ConfigInit:
-                    return StringUtility.Contact(Language.GetFromLocal(43), "(", step.ToString(), ")");
+                    return StringUtility.Concat(Language.GetFromLocal(43), "(", step.ToString(), ")");
                 case LaunchStage.Complete:
                     return Language.GetFromLocal(44);
                 default:
@@ -212,7 +212,7 @@
                 m_IosProgressContainer.SetActive(LaunchInHot.progressInfo.stage != LaunchStage.DownLoad);
                 var remainder = ((int)Time.time) % 3;
                 var dot = remainder == 0 ? "." : remainder == 1 ? ".." : "...";
-                m_IosProgressTip.text = StringUtility.Contact(Language.GetFromLocal(30), dot);
+                m_IosProgressTip.text = StringUtility.Concat(Language.GetFromLocal(30), dot);
             }
             else
             {
@@ -259,7 +259,7 @@
                 //{
                 //    assetBuildTimeShowed = true;
                 //    var totalMinute = (int)(AssetVersionUtility.assetsBuildTime - new DateTime(2018, 1, 1)).TotalMinutes;
-                //    m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", totalMinute.ToString());
+                //    m_Version.text = StringUtility.Concat(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", totalMinute.ToString());
                 //}
             }
 
diff --git a/Main/System/Launch/LoadingWin.cs b/Main/System/Launch/LoadingWin.cs
index a904f3d..6453dba 100644
--- a/Main/System/Launch/LoadingWin.cs
+++ b/Main/System/Launch/LoadingWin.cs
@@ -40,7 +40,7 @@
         //     {
         //         for (var i = 0; i < 3; i++)
         //         {
-        //             var sprite = BuiltInLoader.LoadSprite(StringUtility.Contact("Launch_", i + 1));
+        //             var sprite = BuiltInLoader.LoadSprite(StringUtility.Concat("Launch_", i + 1));
         //             if (sprite != null)
         //             {
         //                 backGrounds.Add(sprite);
diff --git a/Main/System/Login/ServerListCenter.cs b/Main/System/Login/ServerListCenter.cs
index fc6e548..1c127c1 100644
--- a/Main/System/Login/ServerListCenter.cs
+++ b/Main/System/Login/ServerListCenter.cs
@@ -312,7 +312,7 @@
         {
             tables["player"] = _accountName;
             tables["lang"] = "vi";
-            url = StringUtility.Contact(SERVERLIST_URL_PLAYER, "&", HttpRequest.HashtablaToString(tables));
+            url = StringUtility.Concat(SERVERLIST_URL_PLAYER, "&", HttpRequest.HashtablaToString(tables));
         }
 
         HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnGetServerListPlayer);
diff --git a/Main/System/Mail/MailManager.cs b/Main/System/Mail/MailManager.cs
index 00df91f..90f0f5c 100644
--- a/Main/System/Mail/MailManager.cs
+++ b/Main/System/Mail/MailManager.cs
@@ -157,7 +157,7 @@
         {
             // 灏忎簬1澶╋紙浣嗘湭杩囨湡锛夛細鎸夌簿纭殑灏忔椂/鍒嗛挓鏄剧ず銆�
             TimeSpan t = TimeSpan.FromDays(days);
-            result = Language.Get("Mail12", StringUtility.Contact(" ", Language.Get("Mail13", t.Hours, t.Minutes)));
+            result = Language.Get("Mail12", StringUtility.Concat(" ", Language.Get("Mail13", t.Hours, t.Minutes)));
         }
         else
         {
diff --git a/Main/System/Mail/MailWin.cs b/Main/System/Mail/MailWin.cs
index 4a8a70d..7f86d4a 100644
--- a/Main/System/Mail/MailWin.cs
+++ b/Main/System/Mail/MailWin.cs
@@ -49,7 +49,7 @@
     {
         scrMail.m_Scorller.RefreshActiveCellViews();
         int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
-        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
+        txtCurrentMailCount.text = StringUtility.Concat(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
     }
 
     protected override void OpenSubUIByTabIndex()
@@ -62,7 +62,7 @@
                 btnClaimAll.SetActive(true);
                 transCurrentMailCount.SetActive(true);
                 int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
-                txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
+                txtCurrentMailCount.text = StringUtility.Concat(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
                 DisPlay();
                 break;
             case 1:
@@ -148,7 +148,7 @@
             scrMail.Restart();
         }
         int personalMailCount = MailManager.Instance.GetMailCount(MailCategory.Personal);
-        txtCurrentMailCount.text = StringUtility.Contact(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
+        txtCurrentMailCount.text = StringUtility.Concat(personalMailCount.ToString(), "/", MailManager.Instance.personalMailMaxLimitCount.ToString());
     }
 
 
diff --git a/Main/System/Message/RichNormalEvent.cs b/Main/System/Message/RichNormalEvent.cs
index 97e8ad4..68499c9 100644
--- a/Main/System/Message/RichNormalEvent.cs
+++ b/Main/System/Message/RichNormalEvent.cs
@@ -360,7 +360,7 @@
         //             if (fightPoint < (ulong)targetValue)
         //             {
         //                 var label = dic.ContainsKey("replacelabel1") ? dic["replacelabel1"] : string.Empty;
-        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, fightPoint, "/", targetValue), colorType == 1);
+        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Concat(label, fightPoint, "/", targetValue), colorType == 1);
         //             }
         //             else
         //             {
@@ -411,9 +411,9 @@
         //                 if (property != 0)
         //                 {
         //                     var propertyConfig = PlayerPropertyConfig.Get(property);
-        //                     label = StringUtility.Contact(propertyConfig.Name, "锛�");
+        //                     label = StringUtility.Concat(propertyConfig.Name, "锛�");
         //                 }
-        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, point, "/", targetValue), colorType == 1);
+        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Concat(label, point, "/", targetValue), colorType == 1);
         //             }
         //             else
         //             {
@@ -454,7 +454,7 @@
         //             if (!satisfy)
         //             {
         //                 var label = dic.ContainsKey("replacelabel1") ? dic["replacelabel1"] : string.Empty;
-        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, point, "/", targetValue), colorType == 1);
+        //                 return UIHelper.AppendColor(TextColType.Red, StringUtility.Concat(label, point, "/", targetValue), colorType == 1);
         //             }
         //             else
         //             {
diff --git a/Main/System/Message/RichTableEvent.cs b/Main/System/Message/RichTableEvent.cs
index af0aadc..e024d2d 100644
--- a/Main/System/Message/RichTableEvent.cs
+++ b/Main/System/Message/RichTableEvent.cs
@@ -69,7 +69,7 @@
                                             var itemName = cfg.ItemName;
                                             if (_dict.ContainsKey("chatsend"))
                                             {
-                                                itemName = StringUtility.Contact("[", itemName, "]");
+                                                itemName = StringUtility.Concat("[", itemName, "]");
                                             }
                                             if (_dict.ContainsKey("count"))
                                             {
@@ -77,7 +77,7 @@
                                                 int.TryParse(_dict["count"], out count);
                                                 if (count > 0)
                                                 {
-                                                    itemName = StringUtility.Contact(itemName, "x", count.ToString());
+                                                    itemName = StringUtility.Concat(itemName, "x", count.ToString());
                                                 }
                                             }
                                             var suitLabel = string.Empty;
@@ -91,10 +91,10 @@
                                                 }
                                                 // if (ItemLogicUtility.Instance.IsSuitEquip(id))
                                                 // {
-                                                //     suitLabel = StringUtility.Contact("<Suitname=", UIHelper.GetEquipSuitName(id, colorType == 1), "/>|");
+                                                //     suitLabel = StringUtility.Concat("<Suitname=", UIHelper.GetEquipSuitName(id, colorType == 1), "/>|");
                                                 // }
                                             }
-                                            return StringUtility.Contact(suitLabel, AppendColor(itemName, _itemColor, _dict));
+                                            return StringUtility.Concat(suitLabel, AppendColor(itemName, _itemColor, _dict));
                                         }
                                         else
                                         {
@@ -274,7 +274,7 @@
                                         var config = ItemConfig.Get(_id);
                                         if (config != null)
                                         {
-                                            return StringUtility.Contact(GetItemColorName(config.ItemColor), AppendColor(config.ItemName, config.ItemColor, _dict));
+                                            return StringUtility.Concat(GetItemColorName(config.ItemColor), AppendColor(config.ItemName, config.ItemColor, _dict));
                                         }
                                     }
                                 }
diff --git a/Main/System/OpenServerActivity/OperationTimeHepler.cs b/Main/System/OpenServerActivity/OperationTimeHepler.cs
index 288e28c..da8884e 100644
--- a/Main/System/OpenServerActivity/OperationTimeHepler.cs
+++ b/Main/System/OpenServerActivity/OperationTimeHepler.cs
@@ -853,7 +853,7 @@
             }
             else if (!operation.SatisfyOpenCondition())
             {
-                SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("OperationLevelLimit_", type.ToString()), operation.limitLv);
+                SysNotifyMgr.Instance.ShowTip(StringUtility.Concat("OperationLevelLimit_", type.ToString()), operation.limitLv);
             }
         }
         else
@@ -992,8 +992,8 @@
         return $"{month}/{day}";
 
 
-        //var yearString = StringUtility.Contact(year, Language.Get("Year"));
-        //return StringUtility.Contact(showYear ? yearString : string.Empty, month, Language.Get("Month"), day, Language.Get("Day"));
+        //var yearString = StringUtility.Concat(year, Language.Get("Year"));
+        //return StringUtility.Concat(showYear ? yearString : string.Empty, month, Language.Get("Month"), day, Language.Get("Day"));
     }
 
     public static int operator -(OperationDate x, OperationDate y)
diff --git a/Main/System/PhantasmPavilion/AvatarHelper.cs b/Main/System/PhantasmPavilion/AvatarHelper.cs
index abd9b22..bd87f6d 100644
--- a/Main/System/PhantasmPavilion/AvatarHelper.cs
+++ b/Main/System/PhantasmPavilion/AvatarHelper.cs
@@ -79,6 +79,6 @@
     public static string GetAvatarBgColorStr(int faceID)
     {
         int bgColor = GetAvatarBgColor(faceID);
-        return StringUtility.Contact("AvatarBgColor", bgColor.ToString());
+        return StringUtility.Concat("AvatarBgColor", bgColor.ToString());
     }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionInfoCell.cs b/Main/System/PhantasmPavilion/PhantasmPavilionInfoCell.cs
index a4dcb59..8836015 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionInfoCell.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionInfoCell.cs
@@ -47,7 +47,7 @@
             if (attrPerStarAddList.IsNullOrEmpty() || attrIDList.Length != initAttrValueList.Length || attrPerStarAddList.Length <= index)
                 return;
             int attrPerStarAdd = attrPerStarAddList[index];
-            txtAddNext.text = Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.LightGreen, StringUtility.Contact("+", PlayerPropertyConfig.GetValueDescription(attrID, attrPerStarAdd))));
+            txtAddNext.text = Language.Get("PhantasmPavilion12", UIHelper.AppendColor(TextColType.LightGreen, StringUtility.Concat("+", PlayerPropertyConfig.GetValueDescription(attrID, attrPerStarAdd))));
         }
     }
 
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs
index 3a72993..391ddf7 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.DefaultID.cs
@@ -148,6 +148,6 @@
     public string GetModelBgColorStr(int id)
     {
         int bgColor = GetModelBgColor(id);
-        return StringUtility.Contact("ModelBgColor", bgColor.ToString());
+        return StringUtility.Concat("ModelBgColor", bgColor.ToString());
     }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
index ddb6a19..85c4add 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.Redpoint.cs
@@ -225,8 +225,8 @@
 
     }
 
-    string modelkey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Model_", PlayerDatas.Instance.PlayerId.ToString()); } }
-    string facekey { get { return StringUtility.Contact("PhantasmPavilion_Redponit_Face_", PlayerDatas.Instance.PlayerId.ToString()); } }
+    string modelkey { get { return StringUtility.Concat("PhantasmPavilion_Redponit_Model_", PlayerDatas.Instance.PlayerId.ToString()); } }
+    string facekey { get { return StringUtility.Concat("PhantasmPavilion_Redponit_Face_", PlayerDatas.Instance.PlayerId.ToString()); } }
     public void SaveLocal()
     {
         LocalSave.SetIntArray(modelkey, newHeroIDModelList.ToArray());
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs b/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
index a24b5f1..284f3f2 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
@@ -192,7 +192,7 @@
         if (isCanStarAdd && manager.TryGetInfo(type, id, out var info) &&
         state == PhantasmPavilionState.Activated && info.Star > 0)
         {
-            txtName.text = StringUtility.Contact(name, " ", Language.Get("L1113", info.Star));
+            txtName.text = StringUtility.Concat(name, " ", Language.Get("L1113", info.Star));
         }
         else
         {
diff --git a/Main/System/PlayerProfile/ExchangeCodeWin.cs b/Main/System/PlayerProfile/ExchangeCodeWin.cs
index 1de11e7..3fe08b3 100644
--- a/Main/System/PlayerProfile/ExchangeCodeWin.cs
+++ b/Main/System/PlayerProfile/ExchangeCodeWin.cs
@@ -75,7 +75,7 @@
             tables["roleid"] = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
             tables["level"] = PlayerDatas.Instance.baseData.LV.ToString();
             tables["viplevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
-            HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null);
+            HttpRequest.Instance.RequestHttpGet(StringUtility.Concat(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null);
         }
         // if (passward.Length > 1)
         // {
diff --git a/Main/System/PlayerProfile/RenameManager.cs b/Main/System/PlayerProfile/RenameManager.cs
index 31c8642..8668324 100644
--- a/Main/System/PlayerProfile/RenameManager.cs
+++ b/Main/System/PlayerProfile/RenameManager.cs
@@ -67,7 +67,7 @@
 
         int randomNameIndex1 = UnityEngine.Random.Range(0, randomNameList1.Count - 1);
         int randomNameIndex2 = UnityEngine.Random.Range(0, randomNameList2.Count - 1);
-        return StringUtility.Contact(randomNameList1[randomNameIndex1], randomNameList2[randomNameIndex2]);
+        return StringUtility.Concat(randomNameList1[randomNameIndex1], randomNameList2[randomNameIndex2]);
     }
 
     public bool CheckNameLimit(string name, out int errorCode)
diff --git a/Main/System/Setting/QuickSetting.cs b/Main/System/Setting/QuickSetting.cs
index e5031fe..ff9ea4a 100644
--- a/Main/System/Setting/QuickSetting.cs
+++ b/Main/System/Setting/QuickSetting.cs
@@ -82,7 +82,7 @@
         value = UIHelper.ServerStringTrim(value);
         if (value != null && value.Length > 0)
         {
-            setting = StringUtility.Contact(value, setting.Substring(value.Length, setting.Length - value.Length));
+            setting = StringUtility.Concat(value, setting.Substring(value.Length, setting.Length - value.Length));
             cacheSetting = setting;
             PlayerDatas.Instance.baseData.Setting = setting;
         }
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 071d77b..9028651 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -557,7 +557,7 @@
         int state = GetShopIDState(shopID);
         if (state == 1 || state == 3)
         {
-            SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("StoreTip", state.ToString()));
+            SysNotifyMgr.Instance.ShowTip(StringUtility.Concat("StoreTip", state.ToString()));
             return false;
         }
         return true;
diff --git a/Main/System/TianziBillborad/TianziBillboradAwardCell.cs b/Main/System/TianziBillborad/TianziBillboradAwardCell.cs
index 232c26a..29f42de 100644
--- a/Main/System/TianziBillborad/TianziBillboradAwardCell.cs
+++ b/Main/System/TianziBillborad/TianziBillboradAwardCell.cs
@@ -23,7 +23,7 @@
         {
             imgRank.SetActive(true);
             txtRank.SetActive(false);
-            imgRank.SetSprite(StringUtility.Contact("Rank", rank.ToString()));
+            imgRank.SetSprite(StringUtility.Concat("Rank", rank.ToString()));
             txtRank.text = rank.ToString();
         }
         else
diff --git a/Main/Utility/TimeUtility.cs b/Main/Utility/TimeUtility.cs
index 5dc5ea8..4031d45 100644
--- a/Main/Utility/TimeUtility.cs
+++ b/Main/Utility/TimeUtility.cs
@@ -268,11 +268,11 @@
         }
         else if (mins > 0)
         {
-            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"), seconds.ToString(), Language.Get("L1075"));
         }
         else
         {
-            return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
+            return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
         }
     }
 
@@ -283,7 +283,7 @@
     {
         int mins = _seconds % 3600 / 60;
         int seconds = _seconds % 60;
-        return StringUtility.Contact(mins.ToString("D2"), ":", seconds.ToString("D2"));
+        return StringUtility.Concat(mins.ToString("D2"), ":", seconds.ToString("D2"));
     }
 
     //渚嬪瓙锛涗笉瓒崇殑涓嶆樉绀� 濡�0澶�0:xx:xx:,鏄剧ず涓簒x:xx
@@ -311,19 +311,19 @@
         int days = _seconds / 86400;
         if (days > 0)
         {
-            return StringUtility.Contact(days.ToString(), Language.Get("L1074"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"));
         }
         int hours = _seconds % 86400 / 3600;
         if (hours > 0)
         {
-            return StringUtility.Contact(hours.ToString(), Language.Get("Hour"));
+            return StringUtility.Concat(hours.ToString(), Language.Get("Hour"));
         }
         int mins = Mathf.CeilToInt(_seconds % 3600 / 60.0f);
         if (mins > 0)
         {
-            return StringUtility.Contact(mins.ToString(), Language.Get("Minute"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("Minute"));
         }
-        return StringUtility.Contact("1", Language.Get("Minute"));
+        return StringUtility.Concat("1", Language.Get("Minute"));
     }
 
 
@@ -384,23 +384,23 @@
         {
             if (hours == 0)
             {
-                return StringUtility.Contact(days.ToString(), Language.Get("L1074"));
+                return StringUtility.Concat(days.ToString(), Language.Get("L1074"));
             }
-            return StringUtility.Contact(days.ToString(), Language.Get("L1074"), hours.ToString(), Language.Get("L1072"));
+            return StringUtility.Concat(days.ToString(), Language.Get("L1074"), hours.ToString(), Language.Get("L1072"));
         }
         else if (hours > 0)
         {
             if (mins == 0)
             {
-                return StringUtility.Contact(hours.ToString(), Language.Get("L1072"));
+                return StringUtility.Concat(hours.ToString(), Language.Get("L1072"));
             }
-            return StringUtility.Contact(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"));
+            return StringUtility.Concat(hours.ToString(), Language.Get("L1072"), mins.ToString(), Language.Get("L1073"));
         }
         else if (mins > 0)
         { 
-            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"));
         }
-        return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
+        return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
     }
 
 
@@ -435,19 +435,19 @@
         float seconds = (float)_seconds % 60;
         if (days >= 1)
         {
-            return StringUtility.Contact(Mathf.CeilToInt(days).ToString(), Language.Get("L1074"));
+            return StringUtility.Concat(Mathf.CeilToInt(days).ToString(), Language.Get("L1074"));
         }
         else if (hours >= 1)
         {
-            return StringUtility.Contact(Mathf.CeilToInt(hours).ToString(), Language.Get("L1072"));
+            return StringUtility.Concat(Mathf.CeilToInt(hours).ToString(), Language.Get("L1072"));
         }
         else if (mins >= 1)
         {
-            return StringUtility.Contact(mins.ToString(), Language.Get("L1073"));
+            return StringUtility.Concat(mins.ToString(), Language.Get("L1073"));
         }
         else
         {
-            return StringUtility.Contact(seconds.ToString(), Language.Get("L1075"));
+            return StringUtility.Concat(seconds.ToString(), Language.Get("L1075"));
         }
     }
 
diff --git a/Main/Utility/UIHelper.cs b/Main/Utility/UIHelper.cs
index d2e3d43..d42ccdc 100644
--- a/Main/Utility/UIHelper.cs
+++ b/Main/Utility/UIHelper.cs
@@ -80,7 +80,7 @@
         {
             // 鏆備笉鑰冭檻瀵屾枃鏈殑鎯呭喌
             // 涓嶉渶瑕佺墿鍝佺殑鎯呭喌琛ュ厖
-            // string iconKey = StringUtility.Contact("Money_Type_", moneyType);
+            // string iconKey = StringUtility.Concat("Money_Type_", moneyType);
             Debug.LogError("MoneyDisplayModel 鏈厤缃揣甯佺被鍨嬶細" + moneyType);
         }
     }
@@ -129,20 +129,20 @@
             {
                 if (attrName.Length == 2)
                 {
-                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString(), "        ");
+                    suitStr = StringUtility.Concat(suitStr, attrName[i].ToString(), "        ");
                 }
                 else if (attrName.Length == 3)
                 {
-                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString(), "  ");
+                    suitStr = StringUtility.Concat(suitStr, attrName[i].ToString(), "  ");
                 }
                 else
                 {
-                    suitStr = StringUtility.Contact(suitStr, attrName[i].ToString());
+                    suitStr = StringUtility.Concat(suitStr, attrName[i].ToString());
                 }
             }
             else
             {
-                suitStr = StringUtility.Contact(suitStr, attrName[i].ToString());
+                suitStr = StringUtility.Concat(suitStr, attrName[i].ToString());
             }
         }
         return suitStr;
@@ -238,19 +238,19 @@
 
         if (num >= T)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / T, 2), Language.Get("L1070_0"));
+            return StringUtility.Concat(FormatWithoutRounding(num / T, 2), Language.Get("L1070_0"));
         }
         else if (num >= B)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / B, 2), Language.Get("L1070_1"));
+            return StringUtility.Concat(FormatWithoutRounding(num / B, 2), Language.Get("L1070_1"));
         }
         else if (num >= M)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / M, decimalPlaces), Language.Get("L1070"));
+            return StringUtility.Concat(FormatWithoutRounding(num / M, decimalPlaces), Language.Get("L1070"));
         }
         else if (num >= K)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / K, decimalPlaces), Language.Get("L1071"));
+            return StringUtility.Concat(FormatWithoutRounding(num / K, decimalPlaces), Language.Get("L1071"));
         }
         else
         {
@@ -268,19 +268,19 @@
 
         if (num >= T)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / T, 2), "t");
+            return StringUtility.Concat(FormatWithoutRounding(num / T, 2), "t");
         }
         else if (num >= B)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / B, 2), "b");
+            return StringUtility.Concat(FormatWithoutRounding(num / B, 2), "b");
         }
         else if (num >= M)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / M, 1), "m");
+            return StringUtility.Concat(FormatWithoutRounding(num / M, 1), "m");
         }
         else if (num >= K)
         {
-            return StringUtility.Contact(FormatWithoutRounding(num / K, 1), "k");
+            return StringUtility.Concat(FormatWithoutRounding(num / K, 1), "k");
         }
         else
         {
@@ -462,19 +462,19 @@
     //     switch (crossDanLVConfig.DanType)
     //     {
     //         case 0:
-    //             return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "666666" : "dddddd", ">", name, "</color>");
     //         case 1:
-    //             return StringUtility.Contact("<color=#", bright ? "9460ff" : "7999ff", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "9460ff" : "7999ff", ">", name, "</color>");
     //         case 2:
-    //             return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "0066ff" : "00c6ff", ">", name, "</color>");
     //         case 3:
-    //             return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "00b337" : "66ff00", ">", name, "</color>");
     //         case 4:
-    //             return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff6600" : "ff9000", ">", name, "</color>");
     //         case 5:
-    //             return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff0000" : "ff0000", ">", name, "</color>");
     //         case 6:
-    //             return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", name, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff00f6" : "f000ff", ">", name, "</color>");
     //     }
     //     return name;
     // }
@@ -730,9 +730,9 @@
             case TextColType.White:
                 return StringUtility.Concat("<color=#", bright ? "ffffff" : "ffffff", ">", msg, "</color>");
             case TextColType.titleSelectColor:
-                return StringUtility.Contact("<color=#7F4139>", msg, "</color>");
+                return StringUtility.Concat("<color=#7F4139>", msg, "</color>");
             case TextColType.titleUnSelectColor:
-                return StringUtility.Contact("<color=#6E5C60>", msg, "</color>");
+                return StringUtility.Concat("<color=#6E5C60>", msg, "</color>");
             case TextColType.Red:
                 return StringUtility.Concat("<color=#", bright ? "ea261e" : "ea261e", ">", msg, "</color>");
             case TextColType.Pink:
@@ -740,56 +740,56 @@
             case TextColType.Green:
                 return StringUtility.Concat("<color=#", bright ? "248B12" : "2ae337", ">", msg, "</color>");
             case TextColType.NavyBrown:
-                return StringUtility.Contact("<color=#6e4c31>", msg, "</color>");
+                return StringUtility.Concat("<color=#6e4c31>", msg, "</color>");
             case TextColType.DarkGreen:
-                return StringUtility.Contact("<color=#248B12>", msg, "</color>");
+                return StringUtility.Concat("<color=#248B12>", msg, "</color>");
             case TextColType.Black:
-                return StringUtility.Contact("<color=#000000>", msg, "</color>");
+                return StringUtility.Concat("<color=#000000>", msg, "</color>");
             case TextColType.LightWhite:
-                return StringUtility.Contact("<color=f5f646>", msg, "</color>");
+                return StringUtility.Concat("<color=f5f646>", msg, "</color>");
             case TextColType.LightGreen:
-                return StringUtility.Contact("<color=#8ddc11>", msg, "</color>");
+                return StringUtility.Concat("<color=#8ddc11>", msg, "</color>");
             case TextColType.Gray:
-                return StringUtility.Contact("<color=#bbbbbb>", msg, "</color>");
+                return StringUtility.Concat("<color=#bbbbbb>", msg, "</color>");
             case TextColType.NavyGray:
-                return StringUtility.Contact("<color=#797979>", msg, "</color>");
+                return StringUtility.Concat("<color=#797979>", msg, "</color>");
             case TextColType.lightYellow:
-                return StringUtility.Contact("<color=#fcedb9>", msg, "</color>");
+                return StringUtility.Concat("<color=#fcedb9>", msg, "</color>");
             case TextColType.NavyYellow:
-                return StringUtility.Contact("<color=#f2ee02>", msg, "</color>");
+                return StringUtility.Concat("<color=#f2ee02>", msg, "</color>");
             case TextColType.itemjingliang:
                 // 729de4 绮捐壇
-                return StringUtility.Contact("<color=#729de4>", msg, "</color>");
+                return StringUtility.Concat("<color=#729de4>", msg, "</color>");
             case TextColType.itemxiyou:
                 // c87bfa绋�鏈�
-                return StringUtility.Contact("<color=#c87bfa>", msg, "</color>");
+                return StringUtility.Concat("<color=#c87bfa>", msg, "</color>");
             case TextColType.itemshishi:
                 // f6de56 鍙茶瘲
-                return StringUtility.Contact("<color=#f6de56>", msg, "</color>");
+                return StringUtility.Concat("<color=#f6de56>", msg, "</color>");
             case TextColType.itemchuanqi:
                 // fe8534 浼犲
-                return StringUtility.Contact("<color=#fe8534>", msg, "</color>");
+                return StringUtility.Concat("<color=#fe8534>", msg, "</color>");
             case TextColType.itemshenhua:
                 // fe4a47 绁炶瘽
-                return StringUtility.Contact("<color=#fe4a47>", msg, "</color>");
+                return StringUtility.Concat("<color=#fe4a47>", msg, "</color>");
             case TextColType.itemwuxia:
                 // eb5ce9 鏃犵憰
-                return StringUtility.Contact("<color=#eb5ce9>", msg, "</color>");
+                return StringUtility.Concat("<color=#eb5ce9>", msg, "</color>");
             case TextColType.itemanjin:
                 // f9e29f 鏆楅噾
-                return StringUtility.Contact("<color=#f9e29f>", msg, "</color>");
+                return StringUtility.Concat("<color=#f9e29f>", msg, "</color>");
             case TextColType.itemjueyi:
                 // cdfef2 缁濊壓
-                return StringUtility.Contact("<color=#cdfef2>", msg, "</color>");
+                return StringUtility.Concat("<color=#cdfef2>", msg, "</color>");
             case TextColType.itemyuanzu:
                 // dfbbed 鍏冪
-                return StringUtility.Contact("<color=#dfbbed>", msg, "</color>");
+                return StringUtility.Concat("<color=#dfbbed>", msg, "</color>");
             case TextColType.itembuxiu:
                 // 5eeff2 涓嶆溄
-                return StringUtility.Contact("<color=#5eeff2>", msg, "</color>");
+                return StringUtility.Concat("<color=#5eeff2>", msg, "</color>");
             case TextColType.itemyonghen:
                 // f5b4ea 姘告亽
-                return StringUtility.Contact("<color=#f5b4ea>", msg, "</color>");
+                return StringUtility.Concat("<color=#f5b4ea>", msg, "</color>");
         }
         return msg;
     }
@@ -859,17 +859,17 @@
     //     switch (config.Quality)
     //     {
     //         case 1:
-    //             return StringUtility.Contact("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "666666" : "dddddd", ">", msg, "</color>");
     //         case 2:
-    //             return StringUtility.Contact("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "00b337" : "66ff00", ">", msg, "</color>");
     //         case 3:
-    //             return StringUtility.Contact("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "0066ff" : "00c6ff", ">", msg, "</color>");
     //         case 4:
-    //             return StringUtility.Contact("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff00f6" : "f000ff", ">", msg, "</color>");
     //         case 5:
-    //             return StringUtility.Contact("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff6600" : "ff9000", ">", msg, "</color>");
     //         case 6:
-    //             return StringUtility.Contact("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>");
+    //             return StringUtility.Concat("<color=#", bright ? "ff0000" : "ff0000", ">", msg, "</color>");
     //         default:
     //             return msg;
     //     }
@@ -1354,7 +1354,7 @@
     //     {
     //         return string.Empty;
     //     }
-    //     return StringUtility.Contact(GetEquipSuitName(itmeId, bright), itemConfig.ItemName);
+    //     return StringUtility.Concat(GetEquipSuitName(itmeId, bright), itemConfig.ItemName);
     // }
 
     public static string GetStar(int star)
diff --git a/Main/Utility/UIParamCopyTool.cs b/Main/Utility/UIParamCopyTool.cs
index faa724c..bdd23f1 100644
--- a/Main/Utility/UIParamCopyTool.cs
+++ b/Main/Utility/UIParamCopyTool.cs
@@ -244,8 +244,8 @@
             GUILayout.BeginHorizontal();
             var _copyTarget = _target.copyTargets[i];
             _copyTarget.ok = EditorGUILayout.Toggle("鏄惁鏇挎崲", _copyTarget.ok, GUILayout.Width(40));
-            EditorGUILayout.LabelField(StringUtility.Contact("Image", _copyTarget.images.Count.ToString()));
-            EditorGUILayout.LabelField(StringUtility.Contact("Text", _copyTarget.texts.Count.ToString()));
+            EditorGUILayout.LabelField(StringUtility.Concat("Image", _copyTarget.images.Count.ToString()));
+            EditorGUILayout.LabelField(StringUtility.Concat("Text", _copyTarget.texts.Count.ToString()));
             GUILayout.EndHorizontal();
         }
         GUILayout.EndScrollView();

--
Gitblit v1.8.0