Przeglądaj źródła

解决好WEBGL下创角界面的input不能调起输入框的问题

hexiaojie 6 miesięcy temu
rodzic
commit
3e82045094

+ 1 - 3
GameClient/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml

@@ -1,8 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="RiderProjectSettingsUpdater">
-    <option name="singleClickDiffPreview" value="1" />
-    <option name="unhandledExceptionsIgnoreList" value="1" />
-    <option name="vcsConfiguration" value="3" />
+    <option name="vcsConfiguration" value="2" />
   </component>
 </project>

+ 41 - 78
GameClient/.idea/.idea.GameClient/.idea/workspace.xml

@@ -5,17 +5,32 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="19bfabb9-fe2e-4e01-a01b-df7ac5ab759f" name="更改" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/encodings.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIHelper.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/Cache/DropOutDataCache.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/Cache/DropOutDataCache.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUIPool.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUIPool.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/ETCodes/Hotfix/App/Login/LoginHelper.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/ETCodes/Hotfix/App/Login/LoginHelper.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_ButtonDice.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_ButtonDice.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_ComboBoxRarity_popup.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_ComboBoxRarity_popup.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_CreateRoleUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_CreateRoleUI.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_Envelope.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_Envelope.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_EnvelopeModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_EnvelopeModel.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_NewRoleGetSuitUI.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_NewRoleGetSuitUI.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_PartsList.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_PartsList.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_PartsListItem.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_PartsListItem.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_TryDressUpView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_TryDressUpView.cs" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIManager.cs" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0!a.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0!a.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1!a.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1!a.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2!a.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2!a.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2.png" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2.png" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/UserSettings/EditorUserSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/UserSettings/EditorUserSettings.asset" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -29,7 +44,10 @@
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
   </component>
   <component name="HighlightingSettingsPerFile">
-    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/351e49e2a5bf4fd6beabb458ce2255f3ff600/4e/84b60bbd/Enumerable.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/4f/417455e8/GameObject.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/8d4895b259be41298a685a0c9b42357576b400/ca/169fde64/TagManagerInspector.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfg.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/InputField.cs" root0="SKIP_HIGHLIGHTING" />
   </component>
   <component name="ProjectColorInfo">{
   &quot;customColor&quot;: &quot;&quot;,
@@ -43,8 +61,10 @@
   <component name="PropertiesComponent"><![CDATA[{
   "keyToString": {
     "ModuleVcsDetector.initialDetectionPerformed": "true",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
     "RunOnceActivity.ShowReadmeOnStart": "true",
     "RunOnceActivity.git.unshallow": "true",
+    "WebServerToolWindowFactoryState": "false",
     "XThreadsFramesViewSplitterKey": "0.6236111",
     "git-widget-placeholder": "H5sdk",
     "node.js.detected.package.eslint": "true",
@@ -54,6 +74,13 @@
     "nodejs_package_manager_path": "npm",
     "vue.rearranger.settings.migration": "true",
     "附加到 Unity 编辑器.附加到 Unity 编辑器.executor": "Debug"
+  },
+  "keyToStringList": {
+    "rider.external.source.directories": [
+      "C:\\Users\\ss510\\AppData\\Roaming\\JetBrains\\Rider2023.2\\resharper-host\\DecompilerCache",
+      "C:\\Users\\ss510\\AppData\\Roaming\\JetBrains\\Rider2023.2\\resharper-host\\SourcesCache",
+      "C:\\Users\\ss510\\AppData\\Local\\Symbols\\src"
+    ]
   }
 }]]></component>
   <component name="RunManager" selected="附加到 Unity 编辑器.附加到 Unity 编辑器">
@@ -63,9 +90,6 @@
       <option name="WORKING_DIRECTORY" value="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient" />
       <option name="PASS_PARENT_ENVS" value="1" />
       <option name="USE_EXTERNAL_CONSOLE" value="0" />
-      <option name="ENV_FILE_PATHS" value="" />
-      <option name="REDIRECT_INPUT_PATH" value="" />
-      <option name="PTY_MODE" value="Auto" />
       <method v="2" />
     </configuration>
     <configuration name="单元测试(批处理模式)" type="RunUnityExe" factoryName="Unity Executable">
@@ -74,25 +98,16 @@
       <option name="WORKING_DIRECTORY" value="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient" />
       <option name="PASS_PARENT_ENVS" value="1" />
       <option name="USE_EXTERNAL_CONSOLE" value="0" />
-      <option name="ENV_FILE_PATHS" value="" />
-      <option name="REDIRECT_INPUT_PATH" value="" />
-      <option name="PTY_MODE" value="Auto" />
       <method v="2" />
     </configuration>
-    <configuration name="附加到 Unity 编辑器" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="26112">
+    <configuration name="附加到 Unity 编辑器" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="39156">
       <option name="allowRunningInParallel" value="false" />
       <option name="listenPortForConnections" value="false" />
-      <option name="pid" value="26112" />
+      <option name="pid" value="39156" />
       <option name="projectPathOnTarget" />
-      <option name="runtimes">
-        <list>
-          <MonoRuntime />
-        </list>
-      </option>
       <option name="selectedOptions">
         <list />
       </option>
-      <option name="useMixedMode" value="false" />
       <method v="2" />
     </configuration>
     <configuration name="附加到 Unity 编辑器并运行" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="UNITY_ATTACH_AND_PLAY" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
@@ -100,16 +115,13 @@
       <option name="listenPortForConnections" value="false" />
       <option name="pid" />
       <option name="projectPathOnTarget" />
-      <option name="runtimes">
-        <list />
-      </option>
       <option name="selectedOptions">
         <list />
       </option>
-      <option name="useMixedMode" value="false" />
       <method v="2" />
     </configuration>
   </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
     <task active="true" id="Default" summary="默认任务">
       <changelist id="19bfabb9-fe2e-4e01-a01b-df7ac5ab759f" name="更改" comment="" />
@@ -118,7 +130,9 @@
       <option name="presentableId" value="Default" />
       <updated>1751303043735</updated>
       <workItem from="1751303045372" duration="4289000" />
-      <workItem from="1751382825616" duration="5187000" />
+      <workItem from="1751382825616" duration="6005000" />
+      <workItem from="1751703018450" duration="3653000" />
+      <workItem from="1751735130352" duration="15580000" />
     </task>
     <servers />
   </component>
@@ -138,57 +152,6 @@
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
-        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
-          <properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
-          <option name="timeStamp" value="1" />
-        </breakpoint>
-        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
-          <properties exception="System.Threading.Tasks.TaskCanceledException" breakIfHandledByOtherCode="false" displayValue="System.Threading.Tasks.TaskCanceledException" />
-          <option name="timeStamp" value="2" />
-        </breakpoint>
-        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
-          <properties exception="System.Threading.ThreadAbortException" breakIfHandledByOtherCode="false" displayValue="System.Threading.ThreadAbortException" />
-          <option name="timeStamp" value="3" />
-        </breakpoint>
-        <line-breakpoint enabled="true" type="DotNet Breakpoints">
-          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Effect/EffectUIPool.cs</url>
-          <line>13</line>
-          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Effect\EffectUIPool.cs" containingFunctionPresentation="方法 'CreateEffectUI'">
-            <startOffsets>
-              <option value="372" />
-            </startOffsets>
-            <endOffsets>
-              <option value="390" />
-            </endOffsets>
-          </properties>
-          <option name="timeStamp" value="16" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DotNet Breakpoints">
-          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UICGView.cs</url>
-          <line>184</line>
-          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\UGUI\UICGView.cs" containingFunctionPresentation="方法 'Hide'">
-            <startOffsets>
-              <option value="6966" />
-            </startOffsets>
-            <endOffsets>
-              <option value="7007" />
-            </endOffsets>
-          </properties>
-          <option name="timeStamp" value="17" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DotNet Breakpoints">
-          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UICGView.cs</url>
-          <line>159</line>
-          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\UGUI\UICGView.cs" containingFunctionPresentation="方法 'Hide'">
-            <startOffsets>
-              <option value="6375" />
-            </startOffsets>
-            <endOffsets>
-              <option value="6395" />
-            </endOffsets>
-          </properties>
-          <option name="timeStamp" value="18" />
-        </line-breakpoint>
         <line-breakpoint enabled="true" type="DotNet Breakpoints">
           <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs</url>
           <line>301</line>

+ 1 - 1
GameClient/Assets/Game/HotUpdate/ETCodes/Hotfix/App/Login/LoginHelper.cs

@@ -453,7 +453,7 @@ namespace ET
         {
             A2C_GetRandomRoleName response = null;
             bool notLogin = false;
-            Session accountSession = GameGlobal.zoneScene.GetComponent<SessionComponent>().AccountSession;
+            Session accountSession = GameGlobal.zoneScene.GetComponent<SessionComponent>().GateSession;
             if (accountSession == null || accountSession.IsDisposed)
             {
                 notLogin = true;

+ 0 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CreateRole/UI_EnvelopeModel.cs

@@ -10,7 +10,6 @@ namespace UI.CreateRole
         public GGraph m_NiaoEffectHolder;
         public GButton m_btnSure;
         public UI_ButtonDice m_btnDice;
-        public GTextInput m_inputName;
         public GGraph m_ShanZiEffectHolder;
         public GGraph m_TextEffectHolder;
         public GGraph m_trailEffectHolder;
@@ -68,7 +67,6 @@ namespace UI.CreateRole
             m_NiaoEffectHolder = (GGraph)comp.GetChild("NiaoEffectHolder");
             m_btnSure = (GButton)comp.GetChild("btnSure");
             m_btnDice = (UI_ButtonDice)UI_ButtonDice.Create(comp.GetChild("btnDice"));
-            m_inputName = (GTextInput)comp.GetChild("inputName");
             m_ShanZiEffectHolder = (GGraph)comp.GetChild("ShanZiEffectHolder");
             m_TextEffectHolder = (GGraph)comp.GetChild("TextEffectHolder");
             m_trailEffectHolder = (GGraph)comp.GetChild("trailEffectHolder");
@@ -83,7 +81,6 @@ namespace UI.CreateRole
             m_btnSure = null;
             m_btnDice.Dispose();
             m_btnDice = null;
-            m_inputName = null;
             m_ShanZiEffectHolder = null;
             m_TextEffectHolder = null;
             m_trailEffectHolder = null;

+ 3 - 1
GameClient/Assets/Game/HotUpdate/Platform/QDJGameManager.cs

@@ -25,10 +25,12 @@ namespace GFGGame
             QDJHGameManagerInit.Instance._jhGameSDKListener = new JHGameSDKListener();
 
             string url = Application.absoluteURL;
+          
             if (LauncherConfig.IsTest)
             {
+  string testUid = RandomHelper.RandomNumber(1, 999999).ToString();
                 url =
-                    "https://webgltest.goufuguiwxw.com/?user_id=143143319&user_name=12241433259&timestamp=175074382&sign=88cc86dd40f78dfbbfe46add3e8eaa9dac3ba8&cp_ext=&partner=platform";
+                    $"https://webgltest.goufuguiwxw.com/?user_id={testUid}&user_name=12241433259&timestamp=175074382&sign=88cc86dd40f78dfbbfe46add3e8eaa9dac3ba8&cp_ext=&partner=platform";
             }
 
             Debug.Log($"unity init 2 absoluteURL:{url}");

+ 24 - 0
GameClient/Assets/Game/HotUpdate/UGUI/UGUIHelper.cs

@@ -0,0 +1,24 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace GFGGame
+{
+    public static class UGUIHelper
+    {
+        public static InputField GetInputFieldByName(this GameObject gameObject, string inputFieldName)
+        {
+            InputField[] allInputFields = gameObject.GetComponentsInChildren<InputField>();
+
+            // 遍历所有 InputField,找到名称匹配的
+            foreach (InputField inputField in allInputFields)
+            {
+                if (inputField.gameObject.name == inputFieldName) // 替换为你的 InputField 名称
+                {
+                    return inputField;
+                }
+            }
+
+            return null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/UGUI/UGUIHelper.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0f4ad5e1fbb2e8b4caa28b5ca6e09a77
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 13
GameClient/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs

@@ -5,6 +5,7 @@ using System.Text.RegularExpressions;
 using ET;
 using System.Collections.Generic;
 using UnityEngine;
+using UnityEngine.UI;
 
 namespace GFGGame
 {
@@ -20,6 +21,9 @@ namespace GFGGame
 
         private UI_CreateRoleUI _ui;
         private Dictionary<string, EffectUI> _effectUIDic = new Dictionary<string, EffectUI>();
+        
+        private GameObject _createRoleNameGameObject;
+        private InputField _createInputField; // 用于存储预制体中的 InputField 组件
 
         public override void Dispose()
         {
@@ -37,6 +41,14 @@ namespace GFGGame
                 _ui = null;
             }
 
+            // 销毁 _createRoleNameGameObject(如果存在)
+            if (_createRoleNameGameObject != null)
+            {
+                GameObject.Destroy(_createRoleNameGameObject);
+                _createRoleNameGameObject = null;
+                _createInputField = null; // 同时清空引用
+            }
+
             base.Dispose();
         }
 
@@ -60,14 +72,7 @@ namespace GFGGame
                         _effectUIDic.Add("FX_TZ_DJ",
                             EffectUIPool.CreateEffectUI(_ui.m_envelopeModel.m_btnDice.m_holder,
                                 "ui_CreateRoleUI/After_Open",
-                                "FX_TZ_DJ", 100, () =>
-                                {
-                                    _ui.m_envelopeModel.m_btnSure.onClick.Add(OnClickBtnSure);
-                                    _ui.m_envelopeModel.m_btnDice.target.onClick.Add(() =>
-                                    {
-                                        RandomRoleName().Coroutine();
-                                    });
-                                }));
+                                "FX_TZ_DJ", 100, () => { _ui.m_envelopeModel.m_btnSure.onClick.Add(OnClickBtnSure); }));
                     }));
             _effectUIDic.Add("FX_ALL_BG",
                 EffectUIPool.CreateEffectUI(_ui.m_BgEffectHolder, "ui_CreateRoleUI/After_Open", "FX_ALL_BG"));
@@ -94,6 +99,31 @@ namespace GFGGame
                     "FX_Niao"));
         }
 
+        private void CreateUnityInputField(Action action = null)
+        {
+            PrefabManager.Instance.InstantiateAsync(
+                ResPathUtil.GetPrefabPath("CreateRoleName"),
+                (gameObject) =>
+                {
+                    _createRoleNameGameObject = gameObject;
+                    _createInputField = _createRoleNameGameObject.GetInputFieldByName("CreateInputField");
+
+                    if (_createInputField == null)
+                    {
+                        Debug.LogError("无法在预制体中找到名为 'CreateInputField' 的 InputField!");
+                    }
+                    else
+                    {
+                        if (_createRoleNameGameObject != null)
+                        {
+                            _createRoleNameGameObject.gameObject.SetActive(true);
+                        }
+                    }
+
+                    action?.Invoke();
+                });
+        }
+
         //private bool test = false;
         private Animator _btnDiceAnimator;
 
@@ -103,20 +133,33 @@ namespace GFGGame
             {
                 case State.IN:
                     _ui.m_t_In.Play(() => { ChangeAnimationState(State.IDLE); });
+                    Log.Error($"1");
                     break;
                 case State.IDLE:
 
                     _ui.m_envelopeModel.m_envelope.target.onClick.Add(OnClickBtnEnvelope);
                     _ui.m_envelopeModel.m_t_Idle.Play(-1, 0, null);
+                    Log.Error($"2");
                     break;
                 case State.OPEN:
+
                     EffectUIPool.Recycle(_effectUIDic["FX_player"]);
                     _effectUIDic.Remove("FX_player");
                     _btnDiceAnimator = _effectUIDic["FX_TZ_DJ"].GetObj().GetComponentInChildren<Animator>();
 
                     _ui.m_envelopeModel.m_envelope.target.touchable = false;
                     _ui.m_envelopeModel.m_t_Idle.Stop();
-                    _ui.m_t_Open.Play();
+                    _ui.m_t_Open.Play(() =>
+                    {
+                        CreateUnityInputField(() =>
+                        {
+                            _ui.m_envelopeModel.m_btnDice.target.onClick.Add(() =>
+                            {
+                                RandomRoleName().Coroutine();
+                            });
+                        });
+                    });
+
                     break;
                 case State.OUT:
                     _ui.m_t_AfterOpen.Play(() =>
@@ -124,6 +167,7 @@ namespace GFGGame
                         this.Hide();
                         StoryDialogDataManager.Instance.waiting = false;
                     });
+                    Log.Error($"4");
                     break;
             }
         }
@@ -132,7 +176,16 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            _ui.m_envelopeModel.m_inputName.text = "";
+            if (_createRoleNameGameObject != null)
+            {
+                _createRoleNameGameObject.gameObject.SetActive(false);
+            }
+
+            if (_createInputField != null)
+            {
+                _createInputField.text = "";
+            }
+
             LogServerHelper.SendNodeLog((int)LogNode.ShowCreateRole);
 
             ChangeAnimationState(State.IN);
@@ -141,12 +194,19 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            // 销毁 _createRoleNameGameObject(如果存在)
+            if (_createRoleNameGameObject != null)
+            {
+                GameObject.Destroy(_createRoleNameGameObject);
+                _createRoleNameGameObject = null;
+                _createInputField = null; // 同时清空引用
+            }
         }
 
 
         private async void OnClickBtnSure()
         {
-            string roleName = _ui.m_envelopeModel.m_inputName.text;
+            string roleName = _createInputField.text;
             if (string.IsNullOrEmpty(roleName))
             {
                 PromptController.Instance.ShowFloatTextPrompt("角色名不能为空");
@@ -170,6 +230,10 @@ namespace GFGGame
             {
                 StorageSProxy.ReqSetClientValue(ConstStorageId.CHANGE_NAME, 1).Coroutine();
                 ChangeAnimationState(State.OUT);
+                if (_createRoleNameGameObject != null)
+                {
+                    _createRoleNameGameObject.gameObject.SetActive(false);
+                }
             }
         }
 
@@ -178,9 +242,14 @@ namespace GFGGame
             _btnDiceAnimator?.SetTrigger("click");
 
             string name = await LoginController.ReqRandomRoleName();
-            if (_ui != null && _ui.m_envelopeModel.m_inputName != null)
+
+            if (_createInputField != null)
+            {
+                _createInputField.text = name;
+            }
+            else
             {
-                _ui.m_envelopeModel.m_inputName.text = name;
+                Log.Error($"RandomRoleName _createInputField is null. ");
             }
         }
 

+ 434 - 0
GameClient/Assets/ResIn/Prefab/CreateRoleName.prefab

@@ -0,0 +1,434 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1579116667881563863
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1464337353792204706}
+  - component: {fileID: 6377574024762325008}
+  - component: {fileID: 2637712494219608327}
+  - component: {fileID: 1750544031104213604}
+  m_Layer: 5
+  m_Name: CreateInputField
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1464337353792204706
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579116667881563863}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 9199294511727009421}
+  - {fileID: 3251407334265692229}
+  m_Father: {fileID: 482380541766476287}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -84, y: -203}
+  m_SizeDelta: {x: 272.6, y: 44.8}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6377574024762325008
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579116667881563863}
+  m_CullTransparentMesh: 1
+--- !u!114 &2637712494219608327
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579116667881563863}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1750544031104213604
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579116667881563863}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 2637712494219608327}
+  m_TextComponent: {fileID: 7922898812183923725}
+  m_Placeholder: {fileID: 8046370930143726836}
+  m_ContentType: 0
+  m_InputType: 0
+  m_AsteriskChar: 42
+  m_KeyboardType: 0
+  m_LineType: 0
+  m_HideMobileInput: 0
+  m_CharacterValidation: 0
+  m_CharacterLimit: 0
+  m_OnEndEdit:
+    m_PersistentCalls:
+      m_Calls: []
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_CustomCaretColor: 0
+  m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+  m_Text: 
+  m_CaretBlinkRate: 0.85
+  m_CaretWidth: 1
+  m_ReadOnly: 0
+  m_ShouldActivateOnSelect: 1
+--- !u!1 &6167252074436544389
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3251407334265692229}
+  - component: {fileID: 948334245287751223}
+  - component: {fileID: 7922898812183923725}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3251407334265692229
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6167252074436544389}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1464337353792204706}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: -0.5}
+  m_SizeDelta: {x: -20, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &948334245287751223
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6167252074436544389}
+  m_CullTransparentMesh: 1
+--- !u!114 &7922898812183923725
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6167252074436544389}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 066a485735bc69c4caa91f45410287a3, type: 3}
+    m_FontSize: 21
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 0
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!1 &6475960969057329697
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6170028688797486600}
+  m_Layer: 0
+  m_Name: CreateRoleName
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6170028688797486600
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6475960969057329697}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 482380541766476287}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &9011180142870158279
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 9199294511727009421}
+  - component: {fileID: 6851833790973667521}
+  - component: {fileID: 8046370930143726836}
+  m_Layer: 5
+  m_Name: Placeholder
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &9199294511727009421
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9011180142870158279}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1464337353792204706}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -1.1622925, y: -0.49999046}
+  m_SizeDelta: {x: -10.7016, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6851833790973667521
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9011180142870158279}
+  m_CullTransparentMesh: 1
+--- !u!114 &8046370930143726836
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9011180142870158279}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 2a9d07aae17151f43b0a709f03b2a365, type: 3}
+    m_FontSize: 16
+    m_FontStyle: 2
+    m_BestFit: 0
+    m_MinSize: 1
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0"
+--- !u!1 &9126768736587235690
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 482380541766476287}
+  - component: {fileID: 4486539958066943457}
+  - component: {fileID: 4575679393378945276}
+  - component: {fileID: 8442515745865483790}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &482380541766476287
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9126768736587235690}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children:
+  - {fileID: 1464337353792204706}
+  m_Father: {fileID: 6170028688797486600}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!223 &4486539958066943457
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9126768736587235690}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!114 &4575679393378945276
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9126768736587235690}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 0
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!114 &8442515745865483790
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9126768736587235690}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295

+ 7 - 0
GameClient/Assets/ResIn/Prefab/CreateRoleName.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a5a95eeea6e56574dbcf3024d7010371
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1!a.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_1.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2!a.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_atlas0_2.png


BIN
GameClient/Assets/ResIn/UI/CreateRole/CreateRole_fui.bytes


+ 208 - 0
GameClient/Assets/Resources/Scenes/UIView.unity

@@ -0,0 +1,208 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 9
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 3
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 12
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 0
+    m_EnableRealtimeLightmaps: 0
+  m_LightmapEditorSettings:
+    serializedVersion: 12
+    m_Resolution: 2
+    m_BakeResolution: 40
+    m_AtlasSize: 1024
+    m_AO: 0
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_ExtractAmbientOcclusion: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 1
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 2
+    m_BakeBackend: 1
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 512
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 256
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 1
+    m_PVRDenoiserTypeDirect: 1
+    m_PVRDenoiserTypeIndirect: 1
+    m_PVRDenoiserTypeAO: 1
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 1
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+    m_ExportTrainingData: 0
+    m_TrainingDataDestination: TrainingData
+    m_LightProbeSampleCountMultiplier: 4
+  m_LightingDataAsset: {fileID: 0}
+  m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666667
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    maxJobWorkers: 0
+    preserveTilesOutsideBounds: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1 &2854178
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2854181}
+  - component: {fileID: 2854180}
+  - component: {fileID: 2854179}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!81 &2854179
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2854178}
+  m_Enabled: 1
+--- !u!20 &2854180
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2854178}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 1
+  orthographic size: 5
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 1
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!4 &2854181
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2854178}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -10}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 7 - 0
GameClient/Assets/Resources/Scenes/UIView.unity.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 626cc1ee3f3489a49abcbe688c1ac124
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
GameClient/GameClient.sln.DotSettings.user

@@ -40,6 +40,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F683a2b31bf9142429c44f02c75dbc6c913ce00_003F1a_003F53ed0524_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebSocketState_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003Fb5_003F7e198be5_003FWebSocketState_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebSocket_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003F40_003F4c808bad_003FWebSocket_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">SOLUTION</s:String>
 	<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer&gt;&#xD;
   &lt;Assembly Path="C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll" /&gt;&#xD;
   &lt;Assembly Path="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Library\PackageCache\com.unity.collab-proxy@1.15.15\Lib\Editor\PlasticSCM\Unity.Plastic.Newtonsoft.Json.dll" /&gt;&#xD;

+ 8 - 8
GameClient/UserSettings/EditorUserSettings.asset

@@ -6,31 +6,31 @@ EditorUserSettings:
   serializedVersion: 4
   m_ConfigSettings:
     RecentlyUsedScenePath-0:
-      value: 22424703114646680c031c2e1530103c1918130b38670a3f22223c27acf53a31f6fe
+      value: 22424703114646680c031c2e15301031050e16290e2d283325241c21e9af152bfbe935cbe2343c343403fd374a2b0f36e613
       flags: 0
     RecentlyUsedScenePath-1:
-      value: 22424703114646680c031c2e1530103d17041323222f691d2c3a163aece77a2decee22f0
+      value: 22424703114646680c031c2e15301031050e16290e2d283325241c21e9af152df6e83be8f3333c1d2a1be13f263b0f3cfa070819fd451f05181ae4
       flags: 0
     RecentlyUsedScenePath-2:
-      value: 22424703114646680c031c2e15301031050e16290e2d283325241c21e9af152bfbe935cbe2343c343403fd374a2b0f36e613
+      value: 22424703114646680c031c2e15301031181e152b3821293e6208133aefe12031ede978fce9332b25
       flags: 0
     RecentlyUsedScenePath-3:
-      value: 22424703114646680c031c2e15301031050e16290e2d283325241c21e9af152df6e83be8f3333c1d2a1be13f263b0f3cfa070819fd451f05181ae4
+      value: 2242470311464669081d252c5f105c1518125706232f2f3e633c133af6f9
       flags: 0
     RecentlyUsedScenePath-4:
-      value: 22424703114646680c031c2e15301031181e152b3821293e6208133aefe12031ede978fce9332b25
+      value: 22424703114646680e0b0227036c78111b12342b39262538283b5326ece92021
       flags: 0
     RecentlyUsedScenePath-5:
-      value: 2242470311464669081d252c5f105c1518125706232f2f3e633c133af6f9
+      value: 2242470311464669081d033702205a0359241b2f222d357f01261a3aecd63d3df5a923e7ee2e26
       flags: 0
     RecentlyUsedScenePath-6:
-      value: 22424703114646680e0b0227036c78111b12342b39262538283b5326ece92021
+      value: 2242470311464669081d252c5f105c1518125702233c132029280936acf53a31f6fe
       flags: 0
     RecentlyUsedScenePath-7:
       value: 2242470311464669081d033702205a0359241b2f222d357f1b2c0f20ebef3a1beae235e2e2287129370bfb25
       flags: 0
     RecentlyUsedScenePath-8:
-      value: 2242470311464669081d252c5f105c1518125702233c132029280936acf53a31f6fe
+      value: 2242470311464669081d033702205a0359241b2f222d357f18002b3ae7f77a2decee22f0
       flags: 0
     RecentlyUsedScenePath-9:
       value: 2242470311464669081d033702205a0359241b2f222d357f0a281036cee12136e1ef33fba92f31352d1b