Browse Source

Merge branch 'master' of http://192.168.123.2:3000/ck/XiuXianGame

lzx 9 hours ago
parent
commit
943c2dc42f

+ 22 - 0
Assets/Scripts/Core/Log/LogServeData.cs

@@ -0,0 +1,22 @@
+namespace DefaultNamespace.LogTool
+{
+    [System.Serializable]
+    public class LogServeData
+    {
+        public string hash { get; set; }
+        public string title { get; set; }
+        public string content { get; set; }
+        public long time { get; set; }
+        public string playerId { get; set; }
+
+        /// <summary>
+        /// 版本
+        /// </summary>
+        public string v { get; set; }
+
+        public string DeviceID { get; set; }
+        public string operatingSystem { get; set; }
+        public int LogType{ get; set; }
+        public string gameName{ get; set; }
+    }
+}

+ 11 - 0
Assets/Scripts/Core/Log/LogServeData.cs.meta

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

+ 127 - 0
Assets/Scripts/Core/Log/LogServer.cs

@@ -0,0 +1,127 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using DefaultNamespace.LogTool;
+using UnityEngine;
+using Utility;
+
+public class LogServer : Singleton<LogServer>
+{
+    public string playerID;
+    public string gameName = "Editor";
+    public string version;
+    private string deviceModel;
+    private string operatingSystem;
+
+    public void Init(string gameName)
+    {
+        this.gameName = gameName;
+        version = Application.version;
+        deviceModel = SystemInfo.deviceName + "  " + SystemInfo.deviceModel+"   "+SystemInfo.deviceUniqueIdentifier;
+        operatingSystem = SystemInfo.operatingSystem;
+    }
+
+    public void UpLog(Exception exception)
+    {
+        try
+        {
+            LogServeData logServeData = new LogServeData();
+            logServeData.hash = GetStackTraceHash(exception);
+            logServeData.title = exception.Message;
+            logServeData.content = exception.StackTrace;
+            logServeData.LogType = 1;
+            logServeData.gameName = gameName;
+            // logServeData.time = (long)(CombatTimerManager.Instance.TimeSinceStartUp() * 1000);
+            logServeData.playerId = playerID;
+            logServeData.v = version;
+            logServeData.DeviceID = deviceModel;
+            logServeData.operatingSystem = operatingSystem;
+            UpdatToServer(logServeData);
+        }
+        catch (Exception e)
+        {
+        }
+    }
+
+    public void UpLog(string title, string messge)
+    {
+        try
+        {
+            LogServeData logServeData = new LogServeData();
+            logServeData.hash = GetStackTraceHash(title, messge);
+            logServeData.title = title;
+            logServeData.content = messge;
+            logServeData.LogType = 2;
+            logServeData.gameName = gameName;
+            // logServeData.time = (long)(CombatTimerManager.Instance.TimeSinceStartUp() * 1000);
+            logServeData.playerId = playerID;
+            logServeData.v = version;
+            logServeData.DeviceID = deviceModel;
+            logServeData.operatingSystem = operatingSystem;
+            UpdatToServer(logServeData);
+        }
+        catch (Exception e)
+        {
+        }
+    }
+
+    private async Task UpdatToServer(LogServeData logServeData)
+    {
+        string json = LitJson.JsonMapper.ToJson(logServeData);
+        byte[] logData = Encoding.UTF8.GetBytes(json);
+        using var httpClient = new HttpClient();
+        var content = new ByteArrayContent(logData);
+        content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
+
+        var response = await httpClient.PostAsync("http://139.155.99.185:5001/api/logserver/upload", content);
+
+        if (response.IsSuccessStatusCode)
+        {
+            var result = await response.Content.ReadAsStringAsync();
+            // UnityEngine.Debug.Log($"上传成功: {result}");
+        }
+        // else
+        // {
+        //     UnityEngine.Debug.Log($"上传失败: {response.StatusCode}");
+        // }
+    }
+
+    private string GetStackTraceHash(string title, string messge)
+    {
+        var sb = new StringBuilder();
+        sb.Append(title);
+        sb.Append(messge);
+        return GetStackTraceHash(sb);
+    }
+
+    private string GetStackTraceHash(Exception ex)
+    {
+        var trace = new StackTrace(ex, true);
+        var sb = new StringBuilder();
+
+        foreach (var frame in trace.GetFrames() ?? Array.Empty<StackFrame>())
+        {
+            var method = frame.GetMethod();
+            if (method?.DeclaringType != null)
+            {
+                sb.Append(method.DeclaringType.FullName)
+                    .Append(".")
+                    .Append(method.Name)
+                    .Append("()");
+            }
+        }
+
+        return GetStackTraceHash(sb);
+    }
+
+    private string GetStackTraceHash(StringBuilder stringBuilder)
+    {
+        using var sha = System.Security.Cryptography.SHA1.Create();
+        byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(stringBuilder.ToString()));
+        return Convert.ToBase64String(hash);
+    }
+}

+ 11 - 0
Assets/Scripts/Core/Log/LogServer.cs.meta

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

+ 4 - 1
Assets/Scripts/GameLogic/Bag/BagController.cs

@@ -31,7 +31,10 @@ namespace GameLogic.Bag
                 ItemInfo itemInfo = new ItemInfo(itemData);
                 // m_bagList.Add(itemInfo);
                 LogTool.Log(itemInfo.guid);
-                m_allBagDic.Add(itemInfo.guid, itemInfo);
+                if (!m_allBagDic.ContainsKey(itemInfo.guid))
+                {
+                    m_allBagDic.Add(itemInfo.guid, itemInfo);
+                }
                 // PlayerManager.Instance.eqController.Init(itemInfo);
             }
         }

+ 6 - 1
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S3301.cs

@@ -40,8 +40,13 @@ namespace GameLogic.Combat.Skill.MagicSkill
         private void Finish()
         {
             CombatHeroEntity combatHeroEntity = target;
+            if (combatHeroEntity == null)
+            {
+                return;
+            }
+
             ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin<ILifetCycleHitPoint>();
-            if (lifetCycleHitPoint == null)
+            if (lifetCycleHitPoint == null||combatHeroEntity.heroMagicWeaponControl==null||CombatMagicWeaponEntity.RootMagicWeaponControl==null)
             {
                 return;
             }

+ 2 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9013.cs

@@ -129,6 +129,8 @@ namespace GameLogic.Combat.Skill
                     for (int i = 0; i < allFxAi.Count; i++)
                     {
                         SkillFeaturesData mySkillFeaturesData = GetSkillFeaturesData();
+                        if(mySkillFeaturesData==null)
+                            continue;
                         FxParabolaBulletLogic fxParabolaBulletLogic = allFxAi[i] as FxParabolaBulletLogic;
                         fxParabolaBulletLogic.PengZhuang(mySkillFeaturesData, CombatHeroEntity);
                     }

+ 5 - 0
Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs

@@ -175,6 +175,11 @@ namespace GameLogic.Combat.Skill
 
         public SkillFeaturesData GetSkillFeaturesData()
         {
+            if (SkillFeaturesData == null || CombatHeroEntity.CurrCombatHeroInfo == null)
+            {
+                return null;
+            }
+
             SkillFeaturesData skillFeaturesData = SkillFeaturesData.CapyFeaturesData();
 
             long v = (long)(skillFeaturesData.hp * CombatHeroEntity.CurrCombatHeroInfo.GetWuXingShuXing(wuXingType));

+ 6 - 0
Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxAILogicBasic.cs

@@ -141,6 +141,12 @@ namespace Common.Combat.FxAILogic
                     triggerData);
                 SkillBasic skillBasic = trigger as SkillBasic;
                 SkillFeaturesData = skillBasic.GetSkillFeaturesData();
+                if (SkillFeaturesData == null)
+                {
+                    Dispose();
+                    return;
+                }
+
                 SkillFeaturesData.FxAILogicBasic = this;
             }
 

+ 7 - 0
Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxParabolaBulletLogic.cs

@@ -244,6 +244,13 @@ namespace Common.Combat.FxAILogic
 
         public void PengZhuang(SkillFeaturesData targetSkillFeaturesData, CombatHeroEntity targetCombatHeroEntity)
         {
+            if (targetSkillFeaturesData == null)
+            {
+                PlayPengZhuangHit();
+                Dispose();
+                return;
+            }
+
             CombatCalculateTool.Instance.GongFaPengZhuang(SkillFeaturesData, targetSkillFeaturesData, CombatHeroEntity,
                 targetCombatHeroEntity);
             if (SkillFeaturesData.hp <= 0)

+ 1 - 0
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -79,6 +79,7 @@ public class PlayerManager : Singleton<PlayerManager>
     public void Init()
     {
         AccountFileInfo.Instance.LoadPlayerData();
+        LogServer.Instance.playerID= AccountFileInfo.Instance.playerData.playerId;
         SetConfigs();
 
         InitGameData();

+ 4 - 0
Assets/Scripts/GameUI/GameApplction.cs

@@ -62,6 +62,7 @@ public class GameApplction : IGameStart, ILogSend
         gameApplction = this;
         Debug.Log("开始游戏逻辑");
         LogTool.LogSend = this;
+        LogServer.Instance.Init("游三界");
         Crasheye.SendScriptException("测试错误", "测试错误", "ZH");
         Crasheye.SetRegisterLogFunction(UnityLogic);
         this.gameStartUIPanel = gameStartUIPanel;
@@ -301,6 +302,7 @@ public class GameApplction : IGameStart, ILogSend
         if (_cache.Length > 100 * 1024 || GetLineCount(_cache.ToString()) > 50)
             Flush();
         Crasheye.SendScriptException(massge, massge, "");
+        LogServer.Instance.UpLog(massge, massge);
         // CrashSightAgent.ReportException(LogType.Error.ToString(), massge, massge);
     }
 
@@ -324,6 +326,7 @@ public class GameApplction : IGameStart, ILogSend
     {
         _cache.AppendLine($"{e.Message} {e.StackTrace}");
         Flush();
+        LogServer.Instance.UpLog(e);
         Crasheye.SendScriptException(e);
     }
 
@@ -332,6 +335,7 @@ public class GameApplction : IGameStart, ILogSend
         if (type == LogType.Error || type == LogType.Exception)
         {
             Crasheye.SendScriptException(logString, stackTrace, "");
+            LogServer.Instance.UpLog(logString, stackTrace);
         }
     }
 

+ 0 - 7
Assets/StreamingAssets/assetBundle.zip.meta

@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: DSxJ43uoUH8kT0YwMiNbOE+4J0BQp6l+fEMrKmhKdWq4r0S/FEZZQeH4/d3n
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 73 - 60
UserSettings/Layouts/default-2022.dwlt

@@ -19,7 +19,7 @@ MonoBehaviour:
     width: 2560
     height: 1357
   m_ShowMode: 4
-  m_Title: Game
+  m_Title: Hierarchy
   m_RootView: {fileID: 2}
   m_MinSize: {x: 875, y: 492}
   m_MaxSize: {x: 10000, y: 10000}
@@ -100,7 +100,7 @@ MonoBehaviour:
   m_MinSize: {x: 400, y: 100}
   m_MaxSize: {x: 32384, y: 16192}
   vertical: 0
-  controlID: 29
+  controlID: 180
   draggingID: 0
 --- !u!114 &5
 MonoBehaviour:
@@ -147,7 +147,7 @@ MonoBehaviour:
   m_MinSize: {x: 100, y: 100}
   m_MaxSize: {x: 8096, y: 16192}
   vertical: 1
-  controlID: 30
+  controlID: 29
   draggingID: 0
 --- !u!114 &7
 MonoBehaviour:
@@ -166,7 +166,7 @@ MonoBehaviour:
     serializedVersion: 2
     x: 1209
     y: 0
-    width: 135
+    width: 367
     height: 1307
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
@@ -190,9 +190,9 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1344
+    x: 1576
     y: 0
-    width: 1082
+    width: 354
     height: 1307
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
@@ -216,9 +216,9 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 2426
+    x: 1930
     y: 0
-    width: 134
+    width: 630
     height: 1307
   m_MinSize: {x: 276, y: 71}
   m_MaxSize: {x: 4001, y: 4021}
@@ -245,7 +245,7 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 1209
-    height: 670
+    height: 308
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 16}
@@ -269,9 +269,9 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 670
+    y: 308
     width: 1209
-    height: 637
+    height: 999
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 15}
@@ -301,7 +301,7 @@ MonoBehaviour:
     serializedVersion: 2
     x: 1209
     y: 73
-    width: 133
+    width: 365
     height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -316,9 +316,9 @@ MonoBehaviour:
   m_SceneHierarchy:
     m_TreeViewState:
       scrollPos: {x: 0, y: 0}
-      m_SelectedIDs: a2870000
+      m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: b8faffff62c7000094c70000
+      m_ExpandedIDs: 5efaffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -334,7 +334,7 @@ MonoBehaviour:
         m_IsRenaming: 0
         m_OriginalEventType: 11
         m_IsRenamingFilename: 0
-        m_ClientGUIView: {fileID: 0}
+        m_ClientGUIView: {fileID: 7}
       m_SearchString: 
     m_ExpandedScenes: []
     m_CurrenRootInstanceID: 0
@@ -362,9 +362,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 2426
+    x: 1930
     y: 73
-    width: 133
+    width: 629
     height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -379,7 +379,7 @@ MonoBehaviour:
   m_ObjectsLockedBeforeSerialization: []
   m_InstanceIDsLockedBeforeSerialization: 
   m_PreviewResizer:
-    m_CachedPref: -160
+    m_CachedPref: 392
     m_ControlHash: -371814159
     m_PrefName: Preview_InspectorPreview
   m_LastInspectedObjectInstanceID: -1
@@ -409,9 +409,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1344
+    x: 1576
     y: 73
-    width: 1080
+    width: 352
     height: 1286
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -424,7 +424,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: 
+    m_NameFilter: LogT
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -434,24 +434,24 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Editor/UIAsset
+    - Assets/Scripts/GameUI/UI/MainPanel
     m_Globs: []
-    m_OriginalText: 
+    m_OriginalText: LogT
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Editor/UIAsset
+  - Assets/Scripts/GameUI/UI/MainPanel
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\Server\NetServer\NetServer\XiuXianGame
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 223}
-    m_SelectedIDs: 00ce0000
-    m_LastClickedID: 52736
-    m_ExpandedIDs: 000000005ea8000098ca00009aca00009cca00009eca0000a0ca0000a2ca0000a4ca0000a6ca0000a8ca0000aaca0000acca0000aeca0000b0ca0000b2ca0000b4ca0000b6ca0000b8ca0000baca0000bcca0000beca0000c0ca0000c2ca0000c4ca0000c6ca0000e2ca000002cb0000e2cb000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 1615}
+    m_SelectedIDs: 06cb0000
+    m_LastClickedID: 51974
+    m_ExpandedIDs: 0000000024a800001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca000040ca000042ca000044ca000046ca000048ca00004aca00004cca000088ca000008cb00000acb000000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -479,7 +479,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000005ea8000098ca00009aca00009cca00009eca0000a0ca0000a2ca0000a4ca0000a6ca0000a8ca0000aaca0000acca0000aeca0000b0ca0000b2ca0000b4ca0000b6ca0000b8ca0000baca0000bcca0000beca0000c0ca0000c2ca0000c4ca0000c6ca0000
+    m_ExpandedIDs: 0000000024a800001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca000040ca000042ca000044ca000046ca000048ca00004aca00004cca0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -506,22 +506,22 @@ MonoBehaviour:
   m_ListAreaState:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
-    m_HadKeyboardFocusLastEvent: 1
+    m_HadKeyboardFocusLastEvent: 0
     m_ExpandedInstanceIDs: 
     m_RenameOverlay:
       m_UserAcceptedRename: 0
-      m_Name: CombatR
-      m_OriginalName: CombatR
+      m_Name: 
+      m_OriginalName: 
       m_EditFieldRect:
         serializedVersion: 2
         x: 0
         y: 0
         width: 0
         height: 0
-      m_UserData: 52118
+      m_UserData: 0
       m_IsWaitingForDelay: 0
       m_IsRenaming: 0
-      m_OriginalEventType: 0
+      m_OriginalEventType: 11
       m_IsRenamingFilename: 1
       m_ClientGUIView: {fileID: 8}
     m_CreateAssetUtility:
@@ -534,7 +534,7 @@ MonoBehaviour:
     m_ScrollPosition: {x: 0, y: 0}
     m_GridSize: 16
   m_SkipHiddenPackages: 0
-  m_DirectoriesAreaWidth: 500
+  m_DirectoriesAreaWidth: 175
 --- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -556,9 +556,9 @@ MonoBehaviour:
   m_Pos:
     serializedVersion: 2
     x: 0
-    y: 743
+    y: 381
     width: 1208
-    height: 616
+    height: 978
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -575,7 +575,7 @@ MonoBehaviour:
   m_ShowGizmos: 0
   m_TargetDisplay: 0
   m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
-  m_TargetSize: {x: 1208, y: 595}
+  m_TargetSize: {x: 750, y: 1624}
   m_TextureFilterMode: 0
   m_TextureHideFlags: 61
   m_RenderIMGUI: 1
@@ -584,16 +584,16 @@ MonoBehaviour:
   m_VSyncEnabled: 0
   m_Gizmos: 0
   m_Stats: 0
-  m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
+  m_SelectedSizes: 00000000000000000000000013000000000000000000000000000000000000000000000000000000
   m_ZoomArea:
     m_HRangeLocked: 0
     m_VRangeLocked: 0
     hZoomLockedByDefault: 0
     vZoomLockedByDefault: 0
-    m_HBaseRangeMin: -604
-    m_HBaseRangeMax: 604
-    m_VBaseRangeMin: -297.5
-    m_VBaseRangeMax: 297.5
+    m_HBaseRangeMin: -375
+    m_HBaseRangeMax: 375
+    m_VBaseRangeMin: -812
+    m_VBaseRangeMax: 812
     m_HAllowExceedBaseRangeMin: 1
     m_HAllowExceedBaseRangeMax: 1
     m_VAllowExceedBaseRangeMin: 1
@@ -612,25 +612,25 @@ MonoBehaviour:
       x: 0
       y: 21
       width: 1208
-      height: 595
-    m_Scale: {x: 1, y: 1}
-    m_Translation: {x: 604, y: 297.5}
+      height: 957
+    m_Scale: {x: 0.5892857, y: 0.58928573}
+    m_Translation: {x: 604, y: 478.5}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -604
-      y: -297.5
-      width: 1208
-      height: 595
+      x: -1024.9697
+      y: -812
+      width: 2049.9395
+      height: 1624
     m_MinimalGUI: 1
-  m_defaultScale: 1
-  m_LastWindowPixelSize: {x: 1208, y: 616}
+  m_defaultScale: 0.58928573
+  m_LastWindowPixelSize: {x: 1208, y: 978}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
-  m_LowResolutionForAspectRatios: 01000000000000000000
+  m_LowResolutionForAspectRatios: 01000001000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
 --- !u!114 &16
@@ -656,7 +656,7 @@ MonoBehaviour:
     x: 0
     y: 73
     width: 1208
-    height: 649
+    height: 287
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1004,6 +1004,19 @@ MonoBehaviour:
       layout: 4
       size: {x: 0, y: 0}
       sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: UnityEditor.SceneViewCameraOverlay
+      index: 13
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
     m_OverlaysVisible: 1
   m_WindowGUID: e8ca080b221d3f348856e12226052b9f
   m_Gizmos: 1
@@ -1015,9 +1028,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: 623.459, y: 250.9672, z: 1.9532926}
+    m_Target: {x: 375, y: 812, z: 0}
     speed: 2
-    m_Value: {x: 617.51685, y: 255.02045, z: 1.7112793}
+    m_Value: {x: 375, y: 812, z: 0}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -1047,7 +1060,7 @@ MonoBehaviour:
       m_Fade:
         m_Target: 0
         speed: 2
-        m_Value: 1
+        m_Value: 0
       m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
       m_Pivot: {x: 0, y: 0, z: 0}
       m_Size: {x: 1, y: 1}
@@ -1065,11 +1078,11 @@ MonoBehaviour:
   m_Rotation:
     m_Target: {x: 0, y: 0, z: 0, w: 1}
     speed: 2
-    m_Value: {x: -0.000000026628507, y: 0.0000002747978, z: -0.00000006428691, w: -1.0000001}
+    m_Value: {x: 0, y: 0, z: 0, w: 1}
   m_Size:
-    m_Target: 513.60815
+    m_Target: 1028.0233
     speed: 2
-    m_Value: 537.8096
+    m_Value: 1028.0233
   m_Ortho:
     m_Target: 1
     speed: 2

+ 1 - 5
XiuXianGame.sln.DotSettings.user

@@ -39,7 +39,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Fd3_003F4533b7c3_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Fd3_003F4533b7c3_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F78_003Fe39b72ca_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFtpWebRequest_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc9e847ed2baf42848d70833560c740343609b0_003F79_003F82b3146f_003FFtpWebRequest_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFile_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Fce_003Fe010d266_003FFile_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFunc_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F7d_003F1afce2dc_003FFunc_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGraphicsBuffer_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F3a_003F867eec19_003FGraphicsBuffer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIDisposable_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Ff0_003F55936aef_003FIDisposable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -59,7 +59,6 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003F1a_003F8c5b5955_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F5e_003F7396f990_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Fc2_003Ff2299255_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALogType_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F30c894378d1d4d5dae14bfc5b403a5c7180800_003Fd7_003Fec554137_003FLogType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALogType_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F72_003Fad046b71_003FLogType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMathf_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fec_003F349cf977_003FMathf_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMathf_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fc7_003Fab5bc30c_003FMathf_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -70,7 +69,6 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANativeArray_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F3d_003F7966baaa_003FNativeArray_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F14_003F6b3cf15a_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F50_003F76c2310d_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F30c894378d1d4d5dae14bfc5b403a5c7180800_003F4a_003F604c848b_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F78_003F5e834fc5_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F80_003F875f3f51_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQuaternion_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F14_003Fb8fbfefc_003FQuaternion_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -107,6 +105,4 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F2008d2d6093f4149aaeafd5f414aa7a517c400_003Fd3_003F23d17a83_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVisualElement_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003Ffe_003Fe2beea8c_003FVisualElement_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVisualTreeAsset_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F56d039fe633a4adf8fb266a0b1797e6c17a000_003F42_003F6fa4298f_003FVisualTreeAsset_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebRequest_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc9e847ed2baf42848d70833560c740343609b0_003Fc5_003Fba4e6573_003FWebRequest_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
-	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWWWForm_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd5483583a6164ed4a34c3cf4217e92b4c600_003F2f_003F5050b9a5_003FWWWForm_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003A_005F_005FDynamicallyInvokableAttribute_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003F83_003Fcaa5e168_003F_005F_005FDynamicallyInvokableAttribute_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>