Переглянути джерело

搭UI(升级、升星)

lcn 4 місяців тому
батько
коміт
3c16cc6868

+ 8 - 0
Assets/Res/Config/LanguageChineseConfig.json

@@ -239,6 +239,14 @@
     {
       "ID": 60,
       "txt": "万箭齐发"
+    },
+    {
+      "ID": 61,
+      "txt": "解锁"
+    },
+    {
+      "ID": 62,
+      "txt": "等级{0}>>{1}"
     }
   ]
 }

+ 20 - 60
Assets/Res/Config/SkillUpConfig.json

@@ -5,180 +5,140 @@
       "upType": 1,
       "upValue": 1,
       "idx": 0,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 11,
       "upType": 1,
       "upValue": 1,
       "idx": 1,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 12,
       "upType": 1,
       "upValue": 31,
       "idx": 1,
-      "skillParam": [
-        2
-      ]
+      "skillLv": 2
     },
     {
       "ID": 13,
       "upType": 1,
       "upValue": 131,
       "idx": 1,
-      "skillParam": [
-        3
-      ]
+      "skillLv": 3
     },
     {
       "ID": 14,
       "upType": 1,
       "upValue": 231,
       "idx": 1,
-      "skillParam": [
-        4
-      ]
+      "skillLv": 4
     },
     {
       "ID": 21,
       "upType": 1,
       "upValue": 11,
       "idx": 2,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 22,
       "upType": 1,
       "upValue": 51,
       "idx": 2,
-      "skillParam": [
-        2
-      ]
+      "skillLv": 2
     },
     {
       "ID": 23,
       "upType": 1,
       "upValue": 151,
       "idx": 2,
-      "skillParam": [
-        3
-      ]
+      "skillLv": 3
     },
     {
       "ID": 24,
       "upType": 1,
       "upValue": 251,
       "idx": 2,
-      "skillParam": [
-        4
-      ]
+      "skillLv": 4
     },
     {
       "ID": 31,
       "upType": 2,
       "upValue": 5,
       "idx": 3,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 32,
       "upType": 1,
       "upValue": 71,
       "idx": 3,
-      "skillParam": [
-        2
-      ]
+      "skillLv": 2
     },
     {
       "ID": 33,
       "upType": 1,
       "upValue": 171,
       "idx": 3,
-      "skillParam": [
-        3
-      ]
+      "skillLv": 3
     },
     {
       "ID": 34,
       "upType": 1,
       "upValue": 271,
       "idx": 3,
-      "skillParam": [
-        4
-      ]
+      "skillLv": 4
     },
     {
       "ID": 41,
       "upType": 2,
       "upValue": 7,
       "idx": 4,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 42,
       "upType": 1,
       "upValue": 91,
       "idx": 4,
-      "skillParam": [
-        2
-      ]
+      "skillLv": 2
     },
     {
       "ID": 43,
       "upType": 1,
       "upValue": 191,
       "idx": 4,
-      "skillParam": [
-        3
-      ]
+      "skillLv": 3
     },
     {
       "ID": 44,
       "upType": 1,
       "upValue": 291,
       "idx": 4,
-      "skillParam": [
-        4
-      ]
+      "skillLv": 4
     },
     {
       "ID": 51,
       "upType": 2,
       "upValue": 9,
       "idx": 5,
-      "skillParam": [
-        1
-      ]
+      "skillLv": 1
     },
     {
       "ID": 52,
       "upType": 1,
       "upValue": 111,
       "idx": 5,
-      "skillParam": [
-        2
-      ]
+      "skillLv": 2
     },
     {
       "ID": 53,
       "upType": 1,
       "upValue": 211,
       "idx": 5,
-      "skillParam": [
-        3
-      ]
+      "skillLv": 3
     }
   ]
 }

Різницю між файлами не показано, бо вона завелика
+ 35 - 796
Assets/Res/UI/HeroDetailPanel.prefab


+ 171 - 0
Assets/Res/UIPlayable/HeroPowerUpPreTimeline.playable

@@ -0,0 +1,171 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &-4762697777781276530
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ab997e120f9c3184195588497850c91e, type: 3}
+  m_Name: Rect Transform Animation Track
+  m_EditorClassIdentifier: 
+  m_Version: 3
+  m_AnimClip: {fileID: 0}
+  m_Locked: 0
+  m_Muted: 0
+  m_CustomPlayableFullTypename: 
+  m_Curves: {fileID: 0}
+  m_Parent: {fileID: 11400000}
+  m_Children: []
+  m_Clips:
+  - m_Version: 1
+    m_Start: 0
+    m_ClipIn: 0
+    m_Asset: {fileID: -3436615991131964082}
+    m_Duration: 0.2
+    m_TimeScale: 1
+    m_ParentTrack: {fileID: -4762697777781276530}
+    m_EaseInDuration: 0
+    m_EaseOutDuration: 0
+    m_BlendInDuration: -1
+    m_BlendOutDuration: -1
+    m_MixInCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_MixOutCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_BlendInCurveMode: 0
+    m_BlendOutCurveMode: 0
+    m_ExposedParameterNames: []
+    m_AnimationCurves: {fileID: 0}
+    m_Recordable: 0
+    m_PostExtrapolationMode: 0
+    m_PreExtrapolationMode: 0
+    m_PostExtrapolationTime: 0
+    m_PreExtrapolationTime: 0
+    m_DisplayName: RectTransformAnimationClip
+  m_Markers:
+    m_Objects: []
+--- !u!114 &-3436615991131964082
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 11aa0b29ff13eab449a39fa0f8c3c506, type: 3}
+  m_Name: RectTransformAnimationClip
+  m_EditorClassIdentifier: 
+  template:
+    _loopDuration: 0
+    _loopType: 0
+    _curve:
+      _curveType: 1
+      _easeType: 0
+      _animationCurve:
+        serializedVersion: 2
+        m_Curve:
+        - serializedVersion: 3
+          time: 0
+          value: 0
+          inSlope: 2
+          outSlope: 2
+          tangentMode: 0
+          weightedMode: 0
+          inWeight: 0
+          outWeight: 0
+        - serializedVersion: 3
+          time: 1
+          value: 1
+          inSlope: 0
+          outSlope: 0
+          tangentMode: 0
+          weightedMode: 0
+          inWeight: 0
+          outWeight: 0
+        m_PreInfinity: 2
+        m_PostInfinity: 2
+        m_RotationOrder: 4
+    _controlPosition: 1
+    _controlSize: 0
+    _controlRotation: 0
+    _controlScale: 0
+    _startValue:
+      _anchoredPosition: {x: 0, y: -300, z: 0}
+      _sizeDelta: {x: 0, y: 0}
+      _localRotation: {x: 0, y: 0, z: 0}
+      _localScale: {x: 0, y: 0, z: 0}
+    _endValue:
+      _anchoredPosition: {x: 0, y: 0, z: 0}
+      _sizeDelta: {x: 0, y: 0}
+      _localRotation: {x: 0, y: 0, z: 0}
+      _localScale: {x: 0, y: 0, z: 0}
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
+  m_Name: HeroPowerUpPreTimeline
+  m_EditorClassIdentifier: 
+  m_Version: 0
+  m_Tracks:
+  - {fileID: -4762697777781276530}
+  m_FixedDuration: 0
+  m_EditorSettings:
+    m_Framerate: 60
+    m_ScenePreview: 1
+  m_DurationMode: 0
+  m_MarkerTrack: {fileID: 0}

+ 8 - 0
Assets/Res/UIPlayable/HeroPowerUpPreTimeline.playable.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: DSsasCqkV31eBxYIVb13TSD5O88lh79Ea8NiUgGdd8z8kqknX20X2UY=
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Різницю між файлами не показано, бо вона завелика
+ 403 - 411
Assets/Scenes/UIBuild.scene


+ 12 - 0
Assets/Scripts/Core/UI/UTool/Enum.cs

@@ -39,6 +39,18 @@
         /// 主力等级不足
         /// </summary>
         MainLevelNotEnough,
+        /// <summary>
+        /// 需要打开预览面板后再提升
+        /// </summary>
+        NeedOpenPreUI,
+        /// <summary>
+        /// 播放升级特效
+        /// </summary>
+        PlayUpgradeEftFirst,
+        /// <summary>
+        /// 播放升星特效
+        /// </summary>
+        PlayPromoteEftFirst,
     }
     
     /// <summary>

+ 4 - 2
Assets/Scripts/Core/Utility/GlobalParam.cs

@@ -35,7 +35,7 @@ namespace Core.Utility
         /// </summary>
         public static int Hero_Promote_UI_BG_Only_Star_Height = 283;
         /// <summary>
-        /// 升星&解锁技能时,背景高度
+        /// 升星解锁技能时,背景高度
         /// </summary>
         public static int Hero_Promote_UI_BG_Unlock_Skill_Height = 420;
         /// <summary>
@@ -43,9 +43,11 @@ namespace Core.Utility
         /// </summary>
         public static int Hero_Promote_UI_BG_Star_Pos_1 = 0;
         /// <summary>
-        /// 升星&解锁技能时,星星y的位置
+        /// 升星解锁技能时,星星y的位置
         /// </summary>
         public static int Hero_Promote_UI_BG_Star_Pos_2 = 150;
+        
+        // public static int Hero_Upgrade_UI_ = 150;
 
 
         // /// <summary>

+ 2 - 2
Assets/Scripts/GameData/ExcelConfig/SkillUpConfig.cs

@@ -39,9 +39,9 @@ public int idx;
 
 
 		/// <summary>
-		///对应HeroModel表的下标和等级 0;1 表示1位置的1级 1;1 表示2位置的1级 1;2 表示3位置的2
+		///对应idx的等
 		/// </summary>
-public int[] skillParam;
+public int skillLv;
 
 
 	}

+ 66 - 18
Assets/Scripts/GameLogic/Hero/HeroController.cs

@@ -55,7 +55,7 @@ namespace GameLogic.Hero
             m_MainLevel = tmpLv;
         }
 
-        public HeroUpResultType CanUpgrade(HeroInfo heroInfo)
+        public HeroUpResultType CanUpgrade(HeroInfo heroInfo, bool isOpenPre = false)
         {
             if (PlayerManager.Instance.gameConstantConfig.maxLv <= heroInfo.level.Value)
             {
@@ -64,14 +64,24 @@ namespace GameLogic.Hero
             }
             
             //计算主力英雄等级差, 如果再升一级,就大于最大等级差了,就不允许升了.
-            if ((heroInfo.level.Value) - m_MainLevel >= GlobalParam.Max_Main_Level_Difference)
+            if (heroInfo.level.Value - m_MainLevel >= GlobalParam.Max_Main_Level_Difference)
             {
                 LogTool.Log(heroInfo.modelID + "主力英雄等级差不能超过:" + GlobalParam.Max_Main_Level_Difference);
                 return HeroUpResultType.MainLevelNotEnough;
             }
+
+            //每10级,要打开预览界面后,再升级(如果已经打开,就不判断了)
+            if (!isOpenPre && (heroInfo.level.Value + 1) % 10 == 1)
+            {
+                return HeroUpResultType.NeedOpenPreUI;
+            }
             
             if (BagController.Instance.IsEnough(GlobalParam.Item_HeroExp_ID, heroInfo.powerUpConfig.levelUpExp))
             {
+                if (isOpenPre)
+                {
+                    return HeroUpResultType.PlayUpgradeEftFirst;
+                }
                 return HeroUpResultType.Success;
             }
             else
@@ -80,26 +90,45 @@ namespace GameLogic.Hero
             }
         }
 
+        private void DoUpgrade(HeroInfo heroInfo)
+        {
+            heroInfo.Upgrade();
+            PlayerManager.Instance.SaveHeroData(heroInfo);
+            //如果当前英雄等级等于主力等级,则升级时需要重新计算主力等级
+            if (heroInfo.level.Value - 1 == m_MainLevel)
+            {
+                CalMainLevel();
+            }
+            SendEvent(HeroUpType.Level, heroInfo, HeroUpResultType.Success);
+        }
+
         /// <summary>
         /// 英雄升级逻辑,主要是改数据,不在这里做UI表现
         /// </summary>
         /// <param name="heroInfo"></param>
-        public HeroUpResultType UpgradeHeroLogic(HeroInfo heroInfo)
+        public HeroUpResultType UpgradeHeroLogic(HeroInfo heroInfo, bool isOpenPre = false)
         {
-            HeroUpResultType resultType = CanUpgrade(heroInfo);
-            if (resultType == HeroUpResultType.Success && 
-                BagController.Instance.DuctHeroExp(heroInfo.powerUpConfig.levelUpExp))
+            HeroUpResultType resultType = CanUpgrade(heroInfo, isOpenPre);
+            if (resultType == HeroUpResultType.Success || resultType == HeroUpResultType.PlayUpgradeEftFirst)
             {
-                heroInfo.Upgrade();
-                
-                //如果当前英雄等级等于主力等级,则升级时需要重新计算主力等级
-                if (heroInfo.level.Value - 1 == m_MainLevel)
+                //扣除经验
+                bool isOk = BagController.Instance.DuctHeroExp(heroInfo.powerUpConfig.levelUpExp);
+
+                if (isOk )
                 {
-                    CalMainLevel();
+                    if (resultType == HeroUpResultType.Success)
+                    {
+                        DoUpgrade(heroInfo);
+                    }
+                    else if (resultType == HeroUpResultType.PlayUpgradeEftFirst)
+                    {
+                        //执行逻辑,返回播放特效的类型
+                        DoUpgrade(heroInfo);
+                        return resultType;
+                    }
+
+                    return HeroUpResultType.Success;
                 }
-                
-                SendEvent(HeroUpType.Level, heroInfo, HeroUpResultType.Success);
-                return HeroUpResultType.Success;
             }
             return resultType;
         }
@@ -120,7 +149,7 @@ namespace GameLogic.Hero
             if (upType == HeroUpType.Level)
             {
                 SkillUpConfig upConfig = PlayerManager.Instance.heroController
-                    .IsLevelUpGetNewSkill(heroInfo.level.Value);
+                    .GetSkillUpConfig4Lv(heroInfo.level.Value);
                 
                 
                 if (upConfig.ID > 0)
@@ -376,11 +405,11 @@ namespace GameLogic.Hero
         }
 
         /// <summary>
-        /// 判断【等级】是否可以解锁新技能
+        /// 根据【等级】查找是否有技能
         /// </summary>
-        /// <param name="level"></param>
+        /// <param name="level">英雄等级</param>
         /// <returns></returns>
-        public SkillUpConfig IsLevelUpGetNewSkill(int level)
+        public SkillUpConfig GetSkillUpConfig4Lv(int level)
         {
             SkillUpConfig upConfig = new SkillUpConfig();
             foreach (SkillUpConfig skillUpConfig in PlayerManager.Instance.skillUpConfigs)
@@ -393,6 +422,25 @@ namespace GameLogic.Hero
             return upConfig;
         }
         
+        
+        /// <summary>
+        /// 根据【星级】查找是否有技能
+        /// </summary>
+        /// <param name="level">英雄等级</param>
+        /// <returns></returns>
+        public SkillUpConfig GetSkillUpConfig4Star(int star)
+        {
+            SkillUpConfig upConfig = new SkillUpConfig();
+            foreach (SkillUpConfig skillUpConfig in PlayerManager.Instance.skillUpConfigs)
+            {
+                if (skillUpConfig.upType == 2 && star == skillUpConfig.upValue)
+                {
+                    return skillUpConfig;
+                }
+            }
+            return upConfig;
+        }
+        
         /// <summary>
         /// 判断【星级】是否可以解锁新技能
         /// </summary>

+ 12 - 4
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -58,14 +58,23 @@ namespace GameLogic.Hero
             SkillData.InitSkills();
         }
 
+        public void InitHero(int modelID, int powerID, int promoteID)
+        {
+            this.modelID = modelID;
+            SetDataConfig(modelID, 
+                powerID, 
+                promoteID);
+            CalFactor();
+            CalAttribute();
+            SkillData = new SkillData(this);
+            SkillData.InitSkills();
+        }
         public HeroInfo Upgrade()
         {
             level.Value++;
             powerUpConfig = ConfigComponent.Instance.Get<HeroPowerUpConfig>(level.Value);
             CalFactor();
             CalBasicAttribute();
-            PlayerManager.Instance.SaveHeroData(this);
-
             return this;
         }
 
@@ -75,8 +84,7 @@ namespace GameLogic.Hero
             promoteConfig = ConfigComponent.Instance.Get<HeroPromoteConfig>(star.Value);
             CalFactor();
             CalBasicAttribute();
-            PlayerManager.Instance.SaveHeroData(this);
-            
+
             return this;
         }
 

+ 23 - 0
Assets/Scripts/GameLogic/Hero/SkillData.cs

@@ -60,6 +60,29 @@ namespace GameLogic.Hero
             return skillInfo;
         }
 
+        /// <summary>
+        /// 获取SkillConfig
+        /// </summary>
+        /// <param name="upSkillID">技能解锁表的ID</param>
+        /// <returns></returns>
+        public SkillConfig GetSkillConfig(int upSkillID)
+        {
+            // SkillConfig config = new SkillConfig();
+            foreach (KeyValuePair<int,List<SkillInfo>> keyValuePair in mySkillDic)
+            {
+                foreach (SkillInfo skillInfo in keyValuePair.Value)
+                {
+                    // skillInfo.UpdateInfo();
+                    if (skillInfo.upConfig.ID == upSkillID)
+                    {
+                        return skillInfo.skillConfig;
+                    }
+                }
+            }
+
+            return new SkillConfig();;
+        }
+
         // public void Init(HeroInfo heroInfo)
         // {
         //     this.heroInfo = heroInfo;

+ 4 - 1
Assets/Scripts/GameLogic/Hero/SkillInfo.cs

@@ -13,7 +13,7 @@ namespace GameLogic.Hero
         /// </summary>
         public bool isUnLock;
 
-        // public SkillUpConfig skillUpConfig;
+        public SkillUpConfig upConfig;
 
         // private SkillData _skillData;
 
@@ -30,6 +30,9 @@ namespace GameLogic.Hero
             
             isUnLock = PlayerManager.Instance.heroController.IsUnLockSkill(heroInfo.level.Value, heroInfo.star.Value, skillConfig.ID);
             
+            int skillUpID = skillConfig.ID % 100;
+            upConfig = ConfigComponent.Instance.Get<SkillUpConfig>(skillUpID);
+            
             // isUnLock = false;
             // if (skillConfig.ID == GlobalParam.Normal_Attack_Skill_Group_ID)
             // {

+ 65 - 5
Assets/Scripts/GameUI/UI/Hero/HeroDetailPanel.cs

@@ -61,20 +61,66 @@ namespace Fort23.Mono
             if (BagController.Instance.DeductItem(heroInfo.modelConfig.itemID, heroInfo.promoteConfig.costCount))
             {
                 heroInfo.Promote();
+                PlayerManager.Instance.SaveHeroData(heroInfo);
                 UpdateAttributeUI();
                 HeroUITools.SetStarShow(stars, heroInfo.star.Value);
                 SendEvent(HeroUpType.Promote);
             }
             
         }
+
+        private void EnterUpgradePre()
+        {
+            isOpenPre = true;
+            btns1.SetActive(false);
+            btnPromote.gameObject.SetActive(false);
+            
+            RectTransform rt = btnUpgrade.GetComponent<RectTransform>();
+            rt.sizeDelta = new Vector2(510, rt.sizeDelta.y);
+            rt.localPosition = new Vector3(47, rt.localPosition.y, rt.localPosition.z);
+            
+        }
+
+        private void ExitUpgradePre()
+        {
+            isOpenPre = false;
+            btns1.SetActive(true);
+            
+            btnPromote.gameObject.SetActive(true);
+                
+            RectTransform rt = btnUpgrade.GetComponent<RectTransform>();
+            rt.sizeDelta = new Vector2(320, rt.sizeDelta.y);
+            rt.localPosition = new Vector3(188.6f, rt.localPosition.y, rt.localPosition.z);
+                
+            objHeroPowerUpPre.SetActive(false);
+        }
         
-        private void OnClickUpgrade()
+        /// <summary>
+        /// 是否打开了升级/升星的预览界面
+        /// </summary>
+        public bool isOpenPre;
+        private async void OnClickUpgrade()
         {
-            HeroUpResultType resultType = PlayerManager.Instance.heroController.UpgradeHeroLogic(heroInfo);
+            HeroUpResultType resultType = PlayerManager.Instance.heroController.UpgradeHeroLogic(heroInfo, isOpenPre);
 
             if (resultType == HeroUpResultType.Success)
             {
-               UpdateAttributeUI();    
+               UpdateAttributeUI();
+            }
+            else if (resultType == HeroUpResultType.PlayUpgradeEftFirst)
+            {
+                //TODO 要播放特效.
+                ExitUpgradePre();
+                UpdateAttributeUI();
+            }
+            else if(resultType == HeroUpResultType.NeedOpenPreUI)
+            {
+                upPre = await UIManager.Instance.CreateGComponentForObject<HeroPowerUpPre>(objHeroPowerUpPre,
+                    delegate(HeroPowerUpPre pre)
+                    {
+                        EnterUpgradePre();
+                        pre.OpenUpgradePre(heroInfo);
+                    }, root: rtBottom);
             }
             
             // if (PlayerManager.Instance.gameConstantConfig.maxLv <= heroInfo.level.Value)
@@ -115,14 +161,28 @@ namespace Fort23.Mono
         
         private void OnClickClose()
         {
-            UIManager.Instance.HideUIUIPanel(this);
-            GObjectPool.Instance.Recycle(modelObj);
+            if (isOpenPre)
+            {
+                ExitUpgradePre();
+            }
+            else
+            {
+                UIManager.Instance.HideUIUIPanel(this);
+                GObjectPool.Instance.Recycle(modelObj);
+            }
+            
+           
         }
 
         private GameObjectPool modelObj;
+        HeroPowerUpPre upPre;
         public async void InitHeroDetailPanel(HeroInfo heroInfo)
         {
             this.heroInfo = heroInfo;
+            
+            btns1.SetActive(true);
+            objHeroPowerUpPre.SetActive(false);
+
             iconZhiYe.icon_name = heroInfo.iconZhiYe;
             heroName.text = LanguageManager.Instance.Text(heroInfo.modelConfig.name);
             HeroUITools.SetStarShow(stars, heroInfo.star.Value);

+ 33 - 0
Assets/Scripts/GameUI/UI/Hero/HeroDetailPanelData.cs

@@ -252,6 +252,39 @@ namespace Fort23.Mono
 	      return _btnSkill;
 	     }
 	   }
+	  private GameObject _objHeroPowerUpPre;
+	  public GameObject objHeroPowerUpPre
+	   {
+	   get{
+	      if (_objHeroPowerUpPre == null)
+	       {
+	         _objHeroPowerUpPre  = GetUIUnit<GameObject>("objHeroPowerUpPre"); 
+	       }
+	      return _objHeroPowerUpPre;
+	     }
+	   }
+	  private GameObject _btns1;
+	  public GameObject btns1
+	   {
+	   get{
+	      if (_btns1 == null)
+	       {
+	         _btns1  = GetUIUnit<GameObject>("btns1"); 
+	       }
+	      return _btns1;
+	     }
+	   }
+	  private RectTransform _rtBottom;
+	  public RectTransform rtBottom
+	   {
+	   get{
+	      if (_rtBottom == null)
+	       {
+	         _rtBottom  = GetUIUnit<RectTransform>("rtBottom"); 
+	       }
+	      return _rtBottom;
+	     }
+	   }
 	  #endregion 自定义数据结束 
 	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
 	{

+ 155 - 0
Assets/Scripts/GameUI/UI/Hero/HeroPowerUpPre.cs

@@ -0,0 +1,155 @@
+using Core.Language;
+using Core.Utility;
+using Excel2Json;
+using GameLogic.Hero;
+using UnityEngine;
+using Utility;
+
+namespace Fort23.Mono
+{
+    [UIBinding(prefab = "HeroPowerUpPre"  )]
+    public partial class HeroPowerUpPre : UIComponent
+    {
+        private HeroDetailPanel heroDetailPanel;
+        private HeroInfo heroInfo;
+        private async void Init()
+        {
+            heroDetailPanel = await UIManager.Instance.LoadAndOpenPanel<HeroDetailPanel>(null);
+        }
+        public override void AddEvent()
+        {
+        }
+        public override void DelEvent()
+        {
+        }
+        public override void AddButtonEvent()
+        {
+        }
+
+        public void OpenUpgradePre(HeroInfo heroInfo)
+        {
+            // this.heroInfo = heroInfo;
+            objPromote.SetActive(false);
+            objUpgrade.SetActive(true);
+
+            rtUpgradeBg.sizeDelta = new Vector2(rtUpgradeBg.sizeDelta.x, GlobalParam.Hero_Upgrade_UI_BG_Height);
+
+            HeroInfo nextLvInfo = new HeroInfo();
+            nextLvInfo.InitHero(heroInfo.modelID, (heroInfo.powerUpConfig.ID + 1), heroInfo.promoteConfig.ID);
+
+            SkillUpConfig upConfig = PlayerManager.Instance.heroController.GetSkillUpConfig4Lv(nextLvInfo.level.Value);
+            
+            
+            txtUpLv1.text = heroInfo.level.Value.ToStringEx();
+            txtUpLv2.text = nextLvInfo.level.Value.ToStringEx();
+            
+            SkillConfig skillConfig = nextLvInfo.SkillData.GetSkillConfig(upConfig.ID);
+            
+            //确认找到了技能
+            if (upConfig.ID > 0 && skillConfig.ID > 0)
+            {
+                objUpLvTips.SetActive(false);
+                objUpSkill.SetActive(true);
+                objAtts.SetActive(false);
+                
+                object[] data = new object[skillConfig.effectValue.Length];
+                for (int j = 0; j < skillConfig.effectValue.Length; j++)
+                {
+                    data[j] = skillConfig.effectValue[j];
+                }
+
+                imgNewSkill4Up.icon_name = skillConfig.icon;
+                txtSkillName4Up.text = LanguageManager.Instance.Text(skillConfig.name);
+                txSkillDesc4Up.text = LanguageManager.Instance.Text(skillConfig.desc, data);
+                
+                //解锁技能
+                if (upConfig.skillLv == 1)
+                {
+                    txSkillUp.text = LanguageManager.Instance.Text(61);
+                    rtSkillUpDi.sizeDelta = new Vector2(80, rtSkillUpDi.sizeDelta.y);
+                }
+                //技能升级
+                else
+                {
+                    txSkillUp.text = LanguageManager.Instance.Text(62, upConfig.skillLv -1 , upConfig.skillLv);
+                    rtSkillUpDi.sizeDelta = new Vector2(120, rtSkillUpDi.sizeDelta.y);
+                }
+            }
+            else
+            {
+                objUpSkill.SetActive(false);
+                
+                objUpLvTips.SetActive(true);
+                
+                objAtts.SetActive(true);
+                
+                SetAttInfo(heroInfo, nextLvInfo);
+            }
+
+        }
+
+        public void OpenPromotePre(HeroInfo heroInfo)
+        {
+            objPromote.SetActive(true);
+            objUpgrade.SetActive(false);
+            
+            rtPromoteBg.sizeDelta = new Vector2(rtUpgradeBg.sizeDelta.x, GlobalParam.Hero_Promote_UI_BG_Only_Star_Height);
+
+            HeroInfo nextLvInfo = new HeroInfo();
+            nextLvInfo.InitHero(heroInfo.modelID, heroInfo.powerUpConfig.ID, heroInfo.promoteConfig.ID + 1);
+            
+            SkillUpConfig upConfig = PlayerManager.Instance.heroController.GetSkillUpConfig4Star(nextLvInfo.star.Value);
+
+            SetAttInfo(heroInfo, nextLvInfo);
+            
+            HeroUITools.SetStarShow(Stars1, heroInfo.star.Value);
+            HeroUITools.SetStarShow(Stars2, nextLvInfo.star.Value);
+
+            if (upConfig.ID > 0)
+            {
+                rtPromoteBg.sizeDelta = new Vector2(rtUpgradeBg.sizeDelta.x, GlobalParam.Hero_Promote_UI_BG_Unlock_Skill_Height);
+                objProSkillUnlock.SetActive(true);
+                starsPos.localPosition = new Vector3(0, GlobalParam.Hero_Promote_UI_BG_Star_Pos_2, 0);
+                
+                SkillConfig skillConfig = nextLvInfo.SkillData.GetSkillConfig(upConfig.ID);
+                
+                object[] data = new object[skillConfig.effectValue.Length];
+                for (int j = 0; j < skillConfig.effectValue.Length; j++)
+                {
+                    data[j] = skillConfig.effectValue[j];
+                }
+
+                imgNewSkill4Pro.icon_name = skillConfig.icon;
+                txtSkillName4Pro.text = LanguageManager.Instance.Text(skillConfig.name);
+                txSkillLvDesc4Pro.text = LanguageManager.Instance.Text(skillConfig.desc, data);
+                
+            }
+            else
+            {
+                objProSkillUnlock.SetActive(false);
+                starsPos.localPosition = Vector3.zero;
+            }
+            
+            // objProSkillUnlock.SetActive(false);
+            // objProSkillUp.SetActive(false);
+        }
+
+        private void SetAttInfo(HeroInfo heroInfo, HeroInfo nextLvInfo)
+        {
+            objAtts.SetActive(true);
+                
+            txtHPUpLv1.text = heroInfo.hp.Value.ToStringEx();
+            txtHPUpLv2.text = nextLvInfo.hp.Value.ToStringEx();
+
+            txtATKUpLv1.text = heroInfo.attack.Value.ToStringEx();
+            txtATKUpLv2.text = nextLvInfo.attack.Value.ToStringEx();
+            
+            txtDEFUpLv1.text = heroInfo.defense.Value.ToStringEx();
+            txtDEFUpLv2.text = nextLvInfo.defense.Value.ToStringEx();
+            
+            txtSHANBIUpLv1.text = heroInfo.shanbi.Value.ToStringEx();
+            txtSHANBIUpLv2.text = nextLvInfo.shanbi.Value.ToStringEx();
+        }
+
+    }
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/Hero/HeroPowerUpPre.cs.meta

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

+ 339 - 0
Assets/Scripts/GameUI/UI/Hero/HeroPowerUpPreData.cs

@@ -0,0 +1,339 @@
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine.UI;
+using UnityEngine;
+using System.Collections.Generic;
+using TMPro;
+
+namespace Fort23.Mono
+{
+	public partial class HeroPowerUpPre 
+	{
+	  #region 自定义数据 
+	  private GameObject _objUpgrade;
+	  public GameObject objUpgrade
+	   {
+	   get{
+	      if (_objUpgrade == null)
+	       {
+	         _objUpgrade  = GetUIUnit<GameObject>("objUpgrade"); 
+	       }
+	      return _objUpgrade;
+	     }
+	   }
+	  private GameObject _objPromote;
+	  public GameObject objPromote
+	   {
+	   get{
+	      if (_objPromote == null)
+	       {
+	         _objPromote  = GetUIUnit<GameObject>("objPromote"); 
+	       }
+	      return _objPromote;
+	     }
+	   }
+	  private RectTransform _rtUpgradeBg;
+	  public RectTransform rtUpgradeBg
+	   {
+	   get{
+	      if (_rtUpgradeBg == null)
+	       {
+	         _rtUpgradeBg  = GetUIUnit<RectTransform>("rtUpgradeBg"); 
+	       }
+	      return _rtUpgradeBg;
+	     }
+	   }
+	  private TextMeshProUGUI _txtUpLv1;
+	  public TextMeshProUGUI txtUpLv1
+	   {
+	   get{
+	      if (_txtUpLv1 == null)
+	       {
+	         _txtUpLv1  = GetUIUnit<TextMeshProUGUI>("txtUpLv1"); 
+	       }
+	      return _txtUpLv1;
+	     }
+	   }
+	  private TextMeshProUGUI _txtUpLv2;
+	  public TextMeshProUGUI txtUpLv2
+	   {
+	   get{
+	      if (_txtUpLv2 == null)
+	       {
+	         _txtUpLv2  = GetUIUnit<TextMeshProUGUI>("txtUpLv2"); 
+	       }
+	      return _txtUpLv2;
+	     }
+	   }
+	  private GameObject _objAtts;
+	  public GameObject objAtts
+	   {
+	   get{
+	      if (_objAtts == null)
+	       {
+	         _objAtts  = GetUIUnit<GameObject>("objAtts"); 
+	       }
+	      return _objAtts;
+	     }
+	   }
+	  private GameObject _objUpSkill;
+	  public GameObject objUpSkill
+	   {
+	   get{
+	      if (_objUpSkill == null)
+	       {
+	         _objUpSkill  = GetUIUnit<GameObject>("objUpSkill"); 
+	       }
+	      return _objUpSkill;
+	     }
+	   }
+	  private TextMeshProUGUI _txtHPUpLv1;
+	  public TextMeshProUGUI txtHPUpLv1
+	   {
+	   get{
+	      if (_txtHPUpLv1 == null)
+	       {
+	         _txtHPUpLv1  = GetUIUnit<TextMeshProUGUI>("txtHPUpLv1"); 
+	       }
+	      return _txtHPUpLv1;
+	     }
+	   }
+	  private TextMeshProUGUI _txtHPUpLv2;
+	  public TextMeshProUGUI txtHPUpLv2
+	   {
+	   get{
+	      if (_txtHPUpLv2 == null)
+	       {
+	         _txtHPUpLv2  = GetUIUnit<TextMeshProUGUI>("txtHPUpLv2"); 
+	       }
+	      return _txtHPUpLv2;
+	     }
+	   }
+	  private TextMeshProUGUI _txtATKUpLv1;
+	  public TextMeshProUGUI txtATKUpLv1
+	   {
+	   get{
+	      if (_txtATKUpLv1 == null)
+	       {
+	         _txtATKUpLv1  = GetUIUnit<TextMeshProUGUI>("txtATKUpLv1"); 
+	       }
+	      return _txtATKUpLv1;
+	     }
+	   }
+	  private TextMeshProUGUI _txtATKUpLv2;
+	  public TextMeshProUGUI txtATKUpLv2
+	   {
+	   get{
+	      if (_txtATKUpLv2 == null)
+	       {
+	         _txtATKUpLv2  = GetUIUnit<TextMeshProUGUI>("txtATKUpLv2"); 
+	       }
+	      return _txtATKUpLv2;
+	     }
+	   }
+	  private TextMeshProUGUI _txtDEFUpLv1;
+	  public TextMeshProUGUI txtDEFUpLv1
+	   {
+	   get{
+	      if (_txtDEFUpLv1 == null)
+	       {
+	         _txtDEFUpLv1  = GetUIUnit<TextMeshProUGUI>("txtDEFUpLv1"); 
+	       }
+	      return _txtDEFUpLv1;
+	     }
+	   }
+	  private TextMeshProUGUI _txtDEFUpLv2;
+	  public TextMeshProUGUI txtDEFUpLv2
+	   {
+	   get{
+	      if (_txtDEFUpLv2 == null)
+	       {
+	         _txtDEFUpLv2  = GetUIUnit<TextMeshProUGUI>("txtDEFUpLv2"); 
+	       }
+	      return _txtDEFUpLv2;
+	     }
+	   }
+	  private TextMeshProUGUI _txtSHANBIUpLv1;
+	  public TextMeshProUGUI txtSHANBIUpLv1
+	   {
+	   get{
+	      if (_txtSHANBIUpLv1 == null)
+	       {
+	         _txtSHANBIUpLv1  = GetUIUnit<TextMeshProUGUI>("txtSHANBIUpLv1"); 
+	       }
+	      return _txtSHANBIUpLv1;
+	     }
+	   }
+	  private TextMeshProUGUI _txtSHANBIUpLv2;
+	  public TextMeshProUGUI txtSHANBIUpLv2
+	   {
+	   get{
+	      if (_txtSHANBIUpLv2 == null)
+	       {
+	         _txtSHANBIUpLv2  = GetUIUnit<TextMeshProUGUI>("txtSHANBIUpLv2"); 
+	       }
+	      return _txtSHANBIUpLv2;
+	     }
+	   }
+	  private MyImage _imgNewSkill4Up;
+	  public MyImage imgNewSkill4Up
+	   {
+	   get{
+	      if (_imgNewSkill4Up == null)
+	       {
+	         _imgNewSkill4Up  = GetUIUnit<MyImage>("imgNewSkill4Up"); 
+	       }
+	      return _imgNewSkill4Up;
+	     }
+	   }
+	  private Text _txtSkillName4Up;
+	  public Text txtSkillName4Up
+	   {
+	   get{
+	      if (_txtSkillName4Up == null)
+	       {
+	         _txtSkillName4Up  = GetUIUnit<Text>("txtSkillName4Up"); 
+	       }
+	      return _txtSkillName4Up;
+	     }
+	   }
+	  private Text _txSkillDesc4Up;
+	  public Text txSkillDesc4Up
+	   {
+	   get{
+	      if (_txSkillDesc4Up == null)
+	       {
+	         _txSkillDesc4Up  = GetUIUnit<Text>("txSkillDesc4Up"); 
+	       }
+	      return _txSkillDesc4Up;
+	     }
+	   }
+	  private Text _txSkillUp;
+	  public Text txSkillUp
+	   {
+	   get{
+	      if (_txSkillUp == null)
+	       {
+	         _txSkillUp  = GetUIUnit<Text>("txSkillUp"); 
+	       }
+	      return _txSkillUp;
+	     }
+	   }
+	  private RectTransform _rtPromoteBg;
+	  public RectTransform rtPromoteBg
+	   {
+	   get{
+	      if (_rtPromoteBg == null)
+	       {
+	         _rtPromoteBg  = GetUIUnit<RectTransform>("rtPromoteBg"); 
+	       }
+	      return _rtPromoteBg;
+	     }
+	   }
+	  private RectTransform _starsPos;
+	  public RectTransform starsPos
+	   {
+	   get{
+	      if (_starsPos == null)
+	       {
+	         _starsPos  = GetUIUnit<RectTransform>("starsPos"); 
+	       }
+	      return _starsPos;
+	     }
+	   }
+	  private List<object> _Stars1;
+	  public List<object> Stars1
+	   {
+	   get{
+	      if (_Stars1 == null)
+	       {
+	         _Stars1  = GetUIUnit<List<object>>("Stars1"); 
+	       }
+	      return _Stars1;
+	     }
+	   }
+	  private List<object> _Stars2;
+	  public List<object> Stars2
+	   {
+	   get{
+	      if (_Stars2 == null)
+	       {
+	         _Stars2  = GetUIUnit<List<object>>("Stars2"); 
+	       }
+	      return _Stars2;
+	     }
+	   }
+	  private GameObject _objProSkillUnlock;
+	  public GameObject objProSkillUnlock
+	   {
+	   get{
+	      if (_objProSkillUnlock == null)
+	       {
+	         _objProSkillUnlock  = GetUIUnit<GameObject>("objProSkillUnlock"); 
+	       }
+	      return _objProSkillUnlock;
+	     }
+	   }
+	  private MyImage _imgNewSkill4Pro;
+	  public MyImage imgNewSkill4Pro
+	   {
+	   get{
+	      if (_imgNewSkill4Pro == null)
+	       {
+	         _imgNewSkill4Pro  = GetUIUnit<MyImage>("imgNewSkill4Pro"); 
+	       }
+	      return _imgNewSkill4Pro;
+	     }
+	   }
+	  private Text _txtSkillName4Pro;
+	  public Text txtSkillName4Pro
+	   {
+	   get{
+	      if (_txtSkillName4Pro == null)
+	       {
+	         _txtSkillName4Pro  = GetUIUnit<Text>("txtSkillName4Pro"); 
+	       }
+	      return _txtSkillName4Pro;
+	     }
+	   }
+	  private Text _txSkillLvDesc4Pro;
+	  public Text txSkillLvDesc4Pro
+	   {
+	   get{
+	      if (_txSkillLvDesc4Pro == null)
+	       {
+	         _txSkillLvDesc4Pro  = GetUIUnit<Text>("txSkillLvDesc4Pro"); 
+	       }
+	      return _txSkillLvDesc4Pro;
+	     }
+	   }
+	  private RectTransform _rtSkillUpDi;
+	  public RectTransform rtSkillUpDi
+	   {
+	   get{
+	      if (_rtSkillUpDi == null)
+	       {
+	         _rtSkillUpDi  = GetUIUnit<RectTransform>("rtSkillUpDi"); 
+	       }
+	      return _rtSkillUpDi;
+	     }
+	   }
+	  private GameObject _objUpLvTips;
+	  public GameObject objUpLvTips
+	   {
+	   get{
+	      if (_objUpLvTips == null)
+	       {
+	         _objUpLvTips  = GetUIUnit<GameObject>("objUpLvTips"); 
+	       }
+	      return _objUpLvTips;
+	     }
+	   }
+	  #endregion 自定义数据结束 
+	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
+	{
+	 await base.SetUIGameObject(gObjectPoolInterface);
+	 Init();
+	}
+	}
+}

+ 11 - 0
Assets/Scripts/GameUI/UI/Hero/HeroPowerUpPreData.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: D3tKvS78V38KyP/VN7SVPe+EFtylgkVqCVEE+6DpSk5yOg7U4J+fzic=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


BIN
Excel2Json/Excel/Language.xlsx


BIN
Excel2Json/Excel/skill.xlsx


+ 313 - 339
UserSettings/Layouts/default-2022.dwlt

@@ -8,23 +8,47 @@ MonoBehaviour:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 0}
   m_Enabled: 1
-  m_EditorHideFlags: 1
+  m_EditorHideFlags: 0
   m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
   m_Name: 
   m_EditorClassIdentifier: 
   m_PixelRect:
     serializedVersion: 2
-    x: 0
-    y: 43
-    width: 2560
-    height: 1357
+    x: 112
+    y: 66
+    width: 1568
+    height: 971
   m_ShowMode: 4
-  m_Title: Project
-  m_RootView: {fileID: 7}
+  m_Title: Hierarchy
+  m_RootView: {fileID: 6}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
-  m_Maximized: 1
+  m_Maximized: 0
 --- !u!114 &2
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: -54
+    y: -1246
+    width: 476
+    height: 1012
+  m_ShowMode: 0
+  m_Title: Game
+  m_RootView: {fileID: 4}
+  m_MinSize: {x: 100, y: 50}
+  m_MaxSize: {x: 8096, y: 8096}
+  m_Maximized: 0
+--- !u!114 &3
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -39,18 +63,18 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 604
+    x: 0
     y: 0
-    width: 645
-    height: 796
-  m_MinSize: {x: 202, y: 221}
-  m_MaxSize: {x: 4002, y: 4021}
+    width: 476
+    height: 1012
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 23}
   m_Panes:
   - {fileID: 23}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &3
+--- !u!114 &4
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -63,20 +87,19 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 15}
-  - {fileID: 2}
+  - {fileID: 3}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1249
-    height: 796
-  m_MinSize: {x: 200, y: 50}
-  m_MaxSize: {x: 16192, y: 8096}
+    width: 476
+    height: 1012
+  m_MinSize: {x: 100, y: 50}
+  m_MaxSize: {x: 8096, y: 8096}
   vertical: 0
-  controlID: 48
+  controlID: 727848
   draggingID: 0
---- !u!114 &4
+--- !u!114 &5
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -86,15 +109,15 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: TimelineWindow
+  m_Name: ConsoleWindow
   m_EditorClassIdentifier: 
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 965
-    y: 0
-    width: 284
-    height: 511
+    x: 0
+    y: 665.5
+    width: 461.5
+    height: 255.5
   m_MinSize: {x: 100, y: 100}
   m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 18}
@@ -102,59 +125,7 @@ MonoBehaviour:
   - {fileID: 18}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &5
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: ConsoleWindow
-  m_EditorClassIdentifier: 
-  m_Children: []
-  m_Position:
-    serializedVersion: 2
-    x: 0
-    y: 0
-    width: 965
-    height: 511
-  m_MinSize: {x: 101, y: 121}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 19}
-  m_Panes:
-  - {fileID: 19}
-  m_Selected: 0
-  m_LastSelected: 0
 --- !u!114 &6
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Children:
-  - {fileID: 5}
-  - {fileID: 4}
-  m_Position:
-    serializedVersion: 2
-    x: 0
-    y: 796
-    width: 1249
-    height: 511
-  m_MinSize: {x: 200, y: 50}
-  m_MaxSize: {x: 16192, y: 8096}
-  vertical: 0
-  controlID: 77
-  draggingID: 0
---- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -167,22 +138,22 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
+  - {fileID: 7}
   - {fileID: 8}
   - {fileID: 9}
-  - {fileID: 10}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2560
-    height: 1357
+    width: 1568
+    height: 971
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_UseTopView: 1
   m_TopViewHeight: 30
   m_UseBottomView: 1
   m_BottomViewHeight: 20
---- !u!114 &8
+--- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -199,12 +170,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 2560
+    width: 1568
     height: 30
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
-  m_LastLoadedLayoutName: 
---- !u!114 &9
+  m_LastLoadedLayoutName: mbp
+--- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -217,22 +188,22 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
+  - {fileID: 10}
   - {fileID: 11}
   - {fileID: 12}
   - {fileID: 13}
-  - {fileID: 14}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 30
-    width: 2560
-    height: 1307
-  m_MinSize: {x: 500, y: 100}
-  m_MaxSize: {x: 40480, y: 16192}
+    width: 1568
+    height: 921
+  m_MinSize: {x: 400, y: 100}
+  m_MaxSize: {x: 32384, y: 16192}
   vertical: 0
-  controlID: 232
+  controlID: 727786
   draggingID: 0
---- !u!114 &10
+--- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -248,12 +219,12 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 1337
-    width: 2560
+    y: 951
+    width: 1568
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &11
+--- !u!114 &10
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -266,20 +237,20 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 3}
-  - {fileID: 6}
+  - {fileID: 14}
+  - {fileID: 5}
   m_Position:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1249
-    height: 1307
-  m_MinSize: {x: 200, y: 100}
-  m_MaxSize: {x: 16192, y: 16192}
+    width: 461.5
+    height: 921
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 8096, y: 16192}
   vertical: 1
-  controlID: 47
+  controlID: 727805
   draggingID: 0
---- !u!114 &12
+--- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -294,18 +265,18 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1249
+    x: 461.5
     y: 0
-    width: 263
-    height: 1307
-  m_MinSize: {x: 202, y: 221}
-  m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 20}
+    width: 291
+    height: 921
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 19}
   m_Panes:
-  - {fileID: 20}
+  - {fileID: 19}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &13
+--- !u!114 &12
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -320,18 +291,18 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1512
+    x: 752.5
     y: 0
-    width: 656
-    height: 1307
+    width: 421.5
+    height: 921
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
-  m_ActualView: {fileID: 22}
+  m_ActualView: {fileID: 21}
   m_Panes:
-  - {fileID: 22}
+  - {fileID: 21}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &14
+--- !u!114 &13
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -346,18 +317,18 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 2168
+    x: 1174
     y: 0
-    width: 392
-    height: 1307
+    width: 394
+    height: 921
   m_MinSize: {x: 275, y: 50}
   m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 21}
+  m_ActualView: {fileID: 20}
   m_Panes:
-  - {fileID: 21}
+  - {fileID: 20}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &15
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -374,17 +345,61 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 604
-    height: 796
+    width: 461.5
+    height: 665.5
   m_MinSize: {x: 200, y: 200}
   m_MaxSize: {x: 4000, y: 4000}
-  m_ActualView: {fileID: 24}
+  m_ActualView: {fileID: 22}
   m_Panes:
-  - {fileID: 24}
+  - {fileID: 22}
   - {fileID: 17}
   - {fileID: 16}
+  - {fileID: 15}
   m_Selected: 0
-  m_LastSelected: 2
+  m_LastSelected: 3
+--- !u!114 &15
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f817a38900380be47942905e17e7d39b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Timeline
+    m_Image: {fileID: -5401195905404635996, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 112
+    y: 96
+    width: 528.5
+    height: 644.5
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_Preferences:
+    editType: 0
+    timeReferenceMode: 0
+  m_LockTracker:
+    m_IsLocked: 0
+  m_SequenceHierarchy: {fileID: 0}
+  m_SequencePath:
+    m_SelectionRoot: 0
+    m_SubElements: []
 --- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -405,10 +420,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 73
-    width: 1188
-    height: 641
+    x: 112
+    y: 96
+    width: 528.5
+    height: 644.5
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -531,14 +546,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Animator
-    m_Image: {fileID: -1673928668082335149, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: 1711060831702674872, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 73
-    width: 1209
-    height: 436
+    x: 112
+    y: 96
+    width: 528.5
+    height: 644.5
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -654,49 +669,6 @@ MonoBehaviour:
   m_LayerEditor:
     m_SelectedLayerIndex: 0
 --- !u!114 &18
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f817a38900380be47942905e17e7d39b, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_MinSize: {x: 100, y: 100}
-  m_MaxSize: {x: 4000, y: 4000}
-  m_TitleContent:
-    m_Text: Timeline
-    m_Image: {fileID: -9173288242387172643, guid: 0000000000000000d000000000000000, type: 0}
-    m_Tooltip: 
-  m_Pos:
-    serializedVersion: 2
-    x: 965
-    y: 869
-    width: 282
-    height: 490
-  m_SerializedDataModeController:
-    m_DataMode: 0
-    m_PreferredDataMode: 0
-    m_SupportedDataModes: 
-    isAutomatic: 1
-  m_ViewDataDictionary: {fileID: 0}
-  m_OverlayCanvas:
-    m_LastAppliedPresetName: Default
-    m_SaveData: []
-    m_OverlaysVisible: 1
-  m_Preferences:
-    editType: 0
-    timeReferenceMode: 0
-  m_LockTracker:
-    m_IsLocked: 0
-  m_SequenceHierarchy: {fileID: 0}
-  m_SequencePath:
-    m_SelectionRoot: 0
-    m_SubElements: []
---- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -712,14 +684,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Console
-    m_Image: {fileID: -4327648978806127646, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 869
-    width: 964
-    height: 490
+    x: 112
+    y: 761.5
+    width: 460.5
+    height: 234.5
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -730,7 +702,7 @@ MonoBehaviour:
     m_LastAppliedPresetName: Default
     m_SaveData: []
     m_OverlaysVisible: 1
---- !u!114 &20
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -746,14 +718,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Hierarchy
-    m_Image: {fileID: 7966133145522015247, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1249
-    y: 73
-    width: 261
-    height: 1286
+    x: 573.5
+    y: 96
+    width: 289
+    height: 900
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -767,9 +739,9 @@ MonoBehaviour:
   m_SceneHierarchy:
     m_TreeViewState:
       scrollPos: {x: 0, y: 0}
-      m_SelectedIDs: 78580100
+      m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: fcf6fdff16f8fdff68fdfdffa4aaffff32db000060db000074db000080db0000
+      m_ExpandedIDs: 6e85e5ff34bee5ff36bee5ff42bee5ffd2cde5ff4ecee5ff76d1e5ff20d3e5ffd2d3e5ff80d4e5ffcedee5ffe616e6ff1828e6ffe446e7ff4248e7ff5248e7fff048e7ff6a49e7ff144be7ffc24be7ffc64be7ff764ce7ffbe92e7ffd092e7ffb495e7ff0426e8ff048ee8ff90eee8ff9cf1e8fffa1ce9ff0c1de9ffec1fe9ff606de9ff6e6de9ffd271e9fffe71e9ff0e74e9ff3475e9ff3e78e9ff9083e9ff2e84e9ff26fde9ff2afde9ffdcfde9ff8cfee9ffd029eaffe229eaff488eeaff4c8eeaff068feaff0a8feaff108feaff148feaff3c95eaff4095eafff295eaffa296eaff98c1eaffaac1eaff1c41ecffeea6fffff0a6fffff2a6fffffca6ffffa8adffff5aaeffff08afffffeabbffff9ebdffffa0bdffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -785,7 +757,7 @@ MonoBehaviour:
         m_IsRenaming: 0
         m_OriginalEventType: 11
         m_IsRenamingFilename: 0
-        m_ClientGUIView: {fileID: 12}
+        m_ClientGUIView: {fileID: 11}
       m_SearchString: 
     m_ExpandedScenes: []
     m_CurrenRootInstanceID: 0
@@ -793,7 +765,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: 9cd1477dbcc46d642bdb31d35b82cd83
---- !u!114 &21
+--- !u!114 &20
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -809,14 +781,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Inspector
-    m_Image: {fileID: -2667387946076563598, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 2168
-    y: 73
-    width: 391
-    height: 1286
+    x: 1286
+    y: 96
+    width: 393
+    height: 900
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -830,7 +802,7 @@ MonoBehaviour:
   m_ObjectsLockedBeforeSerialization: []
   m_InstanceIDsLockedBeforeSerialization: 
   m_PreviewResizer:
-    m_CachedPref: 494
+    m_CachedPref: 161
     m_ControlHash: -371814159
     m_PrefName: Preview_InspectorPreview
   m_LastInspectedObjectInstanceID: -1
@@ -840,7 +812,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &22
+--- !u!114 &21
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -856,14 +828,14 @@ MonoBehaviour:
   m_MaxSize: {x: 10000, y: 10000}
   m_TitleContent:
     m_Text: Project
-    m_Image: {fileID: -5467254957812901981, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1512
-    y: 73
-    width: 654
-    height: 1286
+    x: 864.5
+    y: 96
+    width: 419.5
+    height: 900
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -885,7 +857,7 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/StreamingAssets/Bundle
+    - Assets/Scenes
     m_Globs: []
     m_OriginalText: 
     m_ImportLogFlags: 0
@@ -893,16 +865,16 @@ MonoBehaviour:
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/StreamingAssets/Bundle
+  - Assets/Scripts/Core/UI/UTool
   m_LastFoldersGridSize: 16
-  m_LastProjectPath: D:\UnityProject\XY001\xy001\XY001
+  m_LastProjectPath: /Users/lcn/0Fort23Projects/XY001
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 214}
-    m_SelectedIDs: ae570100
-    m_LastClickedID: 87982
-    m_ExpandedIDs: 000000002cdc00002edc000030dc000034dc000036dc000038dc00003adc00003cdc00003edc000040dc00000edf000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 0}
+    m_SelectedIDs: 03ca9a3b
+    m_LastClickedID: 1000000003
+    m_ExpandedIDs: 0000000082a2000084a200008aa2000096a200009aa20000baa20000c4a20000d0a20000403e010000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -918,7 +890,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 13}
+      m_ClientGUIView: {fileID: 12}
     m_SearchString: 
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
@@ -930,7 +902,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000002cdc00002edc000030dc000032dc000034dc000036dc000038dc00003adc00003cdc00003edc000040dc0000
+    m_ExpandedIDs: 0000000082a2000084a200008aa2000096a200009aa20000baa20000d0a20000403e010000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -974,7 +946,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 13}
+      m_ClientGUIView: {fileID: 12}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -982,109 +954,11 @@ MonoBehaviour:
       m_Icon: {fileID: 0}
       m_ResourceFile: 
     m_NewAssetIndexInList: -1
-    m_ScrollPosition: {x: 0, y: 9017}
+    m_ScrollPosition: {x: 0, y: 0}
     m_GridSize: 16
   m_SkipHiddenPackages: 0
-  m_DirectoriesAreaWidth: 230
---- !u!114 &23
-MonoBehaviour:
-  m_ObjectHideFlags: 52
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 1
-  m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_MinSize: {x: 200, y: 200}
-  m_MaxSize: {x: 4000, y: 4000}
-  m_TitleContent:
-    m_Text: Game
-    m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
-    m_Tooltip: 
-  m_Pos:
-    serializedVersion: 2
-    x: 604
-    y: 73
-    width: 643
-    height: 775
-  m_SerializedDataModeController:
-    m_DataMode: 0
-    m_PreferredDataMode: 0
-    m_SupportedDataModes: 
-    isAutomatic: 1
-  m_ViewDataDictionary: {fileID: 0}
-  m_OverlayCanvas:
-    m_LastAppliedPresetName: Default
-    m_SaveData: []
-    m_OverlaysVisible: 1
-  m_SerializedViewNames: []
-  m_SerializedViewValues: []
-  m_PlayModeViewName: GameView
-  m_ShowGizmos: 0
-  m_TargetDisplay: 0
-  m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
-  m_TargetSize: {x: 750, y: 1624}
-  m_TextureFilterMode: 0
-  m_TextureHideFlags: 61
-  m_RenderIMGUI: 1
-  m_EnterPlayModeBehavior: 0
-  m_UseMipMap: 0
-  m_VSyncEnabled: 0
-  m_Gizmos: 0
-  m_Stats: 0
-  m_SelectedSizes: 07000000000000000000000000000000000000000000000000000000000000000000000000000000
-  m_ZoomArea:
-    m_HRangeLocked: 0
-    m_VRangeLocked: 0
-    hZoomLockedByDefault: 0
-    vZoomLockedByDefault: 0
-    m_HBaseRangeMin: -375
-    m_HBaseRangeMax: 375
-    m_VBaseRangeMin: -812
-    m_VBaseRangeMax: 812
-    m_HAllowExceedBaseRangeMin: 1
-    m_HAllowExceedBaseRangeMax: 1
-    m_VAllowExceedBaseRangeMin: 1
-    m_VAllowExceedBaseRangeMax: 1
-    m_ScaleWithWindow: 0
-    m_HSlider: 0
-    m_VSlider: 0
-    m_IgnoreScrollWheelUntilClicked: 0
-    m_EnableMouseInput: 1
-    m_EnableSliderZoomHorizontal: 0
-    m_EnableSliderZoomVertical: 0
-    m_UniformScale: 1
-    m_UpDirection: 1
-    m_DrawArea:
-      serializedVersion: 2
-      x: 0
-      y: 21
-      width: 643
-      height: 754
-    m_Scale: {x: 0.4642857, y: 0.4642857}
-    m_Translation: {x: 321.5, y: 377}
-    m_MarginLeft: 0
-    m_MarginRight: 0
-    m_MarginTop: 0
-    m_MarginBottom: 0
-    m_LastShownAreaInsideMargins:
-      serializedVersion: 2
-      x: -692.46155
-      y: -812
-      width: 1384.9231
-      height: 1624
-    m_MinimalGUI: 1
-  m_defaultScale: 0.4642857
-  m_LastWindowPixelSize: {x: 643, y: 775}
-  m_ClearInEditMode: 1
-  m_NoCameraWarning: 1
-  m_LowResolutionForAspectRatios: 01000000000000000000
-  m_XRRenderMode: 0
-  m_RenderTexture: {fileID: 0}
---- !u!114 &24
+  m_DirectoriesAreaWidth: 227
+--- !u!114 &22
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1100,14 +974,14 @@ MonoBehaviour:
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
     m_Text: Scene
-    m_Image: {fileID: 2593428753322112591, guid: 0000000000000000d000000000000000, type: 0}
+    m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 73
-    width: 603
-    height: 775
+    x: 112
+    y: 96
+    width: 460.5
+    height: 644.5
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1123,7 +997,7 @@ MonoBehaviour:
       collapsed: 0
       displayed: 1
       snapOffset: {x: -156, y: -26}
-      snapOffsetDelta: {x: -10, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 3
       id: Tool Settings
       index: 0
@@ -1343,7 +1217,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 0
-      snapOffset: {x: 0, y: -172}
+      snapOffset: {x: 0, y: -137}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 2
       id: Scene View/Particles
@@ -1474,14 +1348,14 @@ MonoBehaviour:
   m_OverrideSceneCullingMask: 6917529027641081856
   m_SceneIsLit: 1
   m_SceneLighting: 1
-  m_2DMode: 0
+  m_2DMode: 1
   m_isRotationLocked: 0
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: -5.5877957, y: 0.78333306, z: 19.707907}
+    m_Target: {x: 502.81125, y: 901.18646, z: -24.680431}
     speed: 2
-    m_Value: {x: -5.5877957, y: 0.78333306, z: 19.707907}
+    m_Value: {x: 509.80164, y: 877.10846, z: -22.295908}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -1509,9 +1383,9 @@ MonoBehaviour:
       m_Size: {x: 0, y: 0}
     yGrid:
       m_Fade:
-        m_Target: 1
+        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}
@@ -1523,21 +1397,21 @@ MonoBehaviour:
       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}
-    m_ShowGrid: 1
+    m_ShowGrid: 0
     m_GridAxis: 1
     m_gridOpacity: 0.5
   m_Rotation:
-    m_Target: {x: 0.12578817, y: 0.8686845, z: -0.28191867, w: 0.3875884}
+    m_Target: {x: 0, y: 0, z: 0, w: 1}
     speed: 2
-    m_Value: {x: 0.12577946, y: 0.8686244, z: -0.28189918, w: 0.38756162}
+    m_Value: {x: 0, y: 0, z: 0, w: 1}
   m_Size:
-    m_Target: 1.11127
+    m_Target: 2472.1704
     speed: 2
-    m_Value: 1.11127
+    m_Value: 2233.7202
   m_Ortho:
-    m_Target: 0
+    m_Target: 1
     speed: 2
-    m_Value: 0
+    m_Value: 1
   m_CameraSettings:
     m_Speed: 1
     m_SpeedNormalized: 0.5
@@ -1553,10 +1427,110 @@ MonoBehaviour:
     m_OcclusionCulling: 0
     m_EnableGDRP: 1
     m_BackfaceCulling: 0
-  m_LastSceneViewRotation: {x: 0.013153511, y: -0.059692424, z: -0.0010107142, w: -0.99825275}
+  m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
   m_LastSceneViewOrtho: 0
   m_ReplacementShader: {fileID: 0}
   m_ReplacementString: 
   m_SceneVisActive: 1
   m_LastLockedObject: {fileID: 0}
   m_ViewIsLockedToObject: 0
+--- !u!114 &23
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Game
+    m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: -54
+    y: -1246
+    width: 476
+    height: 991
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_SerializedViewNames:
+  - UnityEditor.DeviceSimulation.SimulatorWindow
+  m_SerializedViewValues:
+  - /Users/lcn/0Fort23Projects/XY001/Library/PlayModeViewStates/05e7283e9f9f248e4adc9b45414f021c
+  m_PlayModeViewName: GameView
+  m_ShowGizmos: 0
+  m_TargetDisplay: 0
+  m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
+  m_TargetSize: {x: 750, y: 1624}
+  m_TextureFilterMode: 0
+  m_TextureHideFlags: 61
+  m_RenderIMGUI: 1
+  m_EnterPlayModeBehavior: 0
+  m_UseMipMap: 0
+  m_VSyncEnabled: 0
+  m_Gizmos: 0
+  m_Stats: 0
+  m_SelectedSizes: 08000000000000000000000000000000000000000000000000000000000000000000000000000000
+  m_ZoomArea:
+    m_HRangeLocked: 0
+    m_VRangeLocked: 0
+    hZoomLockedByDefault: 0
+    vZoomLockedByDefault: 0
+    m_HBaseRangeMin: -187.5
+    m_HBaseRangeMax: 187.5
+    m_VBaseRangeMin: -406
+    m_VBaseRangeMax: 406
+    m_HAllowExceedBaseRangeMin: 1
+    m_HAllowExceedBaseRangeMax: 1
+    m_VAllowExceedBaseRangeMin: 1
+    m_VAllowExceedBaseRangeMax: 1
+    m_ScaleWithWindow: 0
+    m_HSlider: 0
+    m_VSlider: 0
+    m_IgnoreScrollWheelUntilClicked: 0
+    m_EnableMouseInput: 1
+    m_EnableSliderZoomHorizontal: 0
+    m_EnableSliderZoomVertical: 0
+    m_UniformScale: 1
+    m_UpDirection: 1
+    m_DrawArea:
+      serializedVersion: 2
+      x: 0
+      y: 21
+      width: 476
+      height: 970
+    m_Scale: {x: 1, y: 1}
+    m_Translation: {x: 238, y: 485}
+    m_MarginLeft: 0
+    m_MarginRight: 0
+    m_MarginTop: 0
+    m_MarginBottom: 0
+    m_LastShownAreaInsideMargins:
+      serializedVersion: 2
+      x: -238
+      y: -485
+      width: 476
+      height: 970
+    m_MinimalGUI: 1
+  m_defaultScale: 1
+  m_LastWindowPixelSize: {x: 952, y: 1982}
+  m_ClearInEditMode: 1
+  m_NoCameraWarning: 1
+  m_LowResolutionForAspectRatios: 01000000000000000000
+  m_XRRenderMode: 0
+  m_RenderTexture: {fileID: 0}

Деякі файли не було показано, через те що забагато файлів було змінено