Browse Source

修改bug

DESKTOP-FB72PO8\Administrator 4 months ago
parent
commit
f82ce6d673
36 changed files with 610 additions and 214 deletions
  1. 4 0
      Assets/Art/ArtHero/Hero04.prefab
  2. 6 3
      Assets/Art/VFX/HeroFXprefab/fx_gongjian_sk_zd.prefab
  3. 3 0
      Assets/Scripts/Core/Pool/GPool/GObjectPool.cs
  4. 22 21
      Assets/Scripts/Core/Pool/GPool/ParticleSystemPool.cs
  5. 1 1
      Assets/Scripts/Core/State/StateControl.cs
  6. 8 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs
  7. 7 2
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs
  8. 3 2
      Assets/Scripts/GameLogic/Combat/CombatTool/SkillScriptManager.cs
  9. 3 3
      Assets/Scripts/GameLogic/Combat/CombatType/LevelBattleCombatType.cs
  10. 33 1
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs
  11. 2 2
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControl.cs
  12. 37 25
      Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs
  13. 8 4
      Assets/Scripts/GameLogic/Paritcle/GameTimeLineParticleFactory.cs
  14. 159 0
      Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxNavigationLogic.cs
  15. 11 0
      Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxNavigationLogic.cs.meta
  16. 14 0
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineAlertLogic.cs
  17. 76 19
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineEventParticleLogicBasic.cs
  18. 38 4
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogicBasic.cs
  19. 39 10
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogicGroupBasic.cs
  20. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/CameraShakingSerializtion.cs
  21. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineActiveGameObjectSerializtion.cs
  22. 3 2
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineAlertSeriailztion.cs
  23. 6 2
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineAudioSeralization.cs
  24. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineCollisionTriggerSerializtion.cs
  25. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineCurveSerializtion.cs
  26. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineEndSingSerializtion.cs
  27. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineFallSeraliztion.cs
  28. 4 2
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMaxTimeSerializtion.cs
  29. 2 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLinePlayFxSerializtion.cs
  30. 3 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineSkillPreparationSerializtion.cs
  31. 3 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineSkillStartSerializtion.cs
  32. 3 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineTriggerSerialization.cs
  33. 3 1
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TineLineAnimationPlayableSerialization.cs
  34. 4 4
      Assets/Scripts/GameUI/GameApplctionMono.cs
  35. 1 4
      Packages/com.annulusgames.lit-motion@99e865bcf3/Runtime/LitMotion.asmdef
  36. 92 92
      UserSettings/Layouts/default-2022.dwlt

+ 4 - 0
Assets/Art/ArtHero/Hero04.prefab

@@ -2290,6 +2290,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   DotName: zdpos
+  followSkeleton: 0
+  myRotation: {x: 0, y: 0, z: 0}
 --- !u!1 &7445969611990537812
 GameObject:
   m_ObjectHideFlags: 0
@@ -2822,6 +2824,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   DotName: hitpos
+  followSkeleton: 0
+  myRotation: {x: 0, y: 0, z: 0}
 --- !u!1 &9076896602895236429
 GameObject:
   m_ObjectHideFlags: 0

+ 6 - 3
Assets/Art/VFX/HeroFXprefab/fx_gongjian_sk_zd.prefab

@@ -19588,7 +19588,7 @@ GameObject:
   - component: {fileID: 331560641102920169}
   - component: {fileID: 7668476979556581787}
   - component: {fileID: 929334952724321305}
-  - component: {fileID: 3566381444513547314}
+  - component: {fileID: 2551275485491574577}
   m_Layer: 0
   m_HasEditorInfo: 1
   m_Name: fx_gongjian_sk_zd
@@ -24433,7 +24433,7 @@ BoxCollider:
   serializedVersion: 3
   m_Size: {x: 0.30808192, y: 0.2222085, z: 1.061423}
   m_Center: {x: -0.025959045, y: 0.038895667, z: 0.3657115}
---- !u!114 &3566381444513547314
+--- !u!114 &2551275485491574577
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -24442,7 +24442,7 @@ MonoBehaviour:
   m_GameObject: {fileID: 5909360642068039313}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f1821a44633e40668ff3010995e64538, type: 3}
+  m_Script: {fileID: 11500000, guid: 1f15b4d10f407904ca570b24694be3c9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   hitFxName: fx_gongjian_sk_zd_hit
@@ -24451,3 +24451,6 @@ MonoBehaviour:
   isUseCustomTargetEndPos: 1
   customTargetEndPosIndex: 0
   speed: 18
+  delayNavigation: 2
+  continuedTime: 10
+  PenetrateCount: 3

+ 3 - 0
Assets/Scripts/Core/Pool/GPool/GObjectPool.cs

@@ -549,17 +549,20 @@ namespace Fort23.UTool
                 isUseSynchronous: isUseSynchronous);
             if (Prestore)
             {
+                callBack?.Invoke(default);
                 return default;
             }
 
             if (poolInerface == null)
             {
+                callBack?.Invoke(default);
                 return default;
             }
 
             if (clock != null && clock.isBreak)
             {
                 Recycle(poolInerface);
+                callBack?.Invoke(default);
                 return default;
             }
 

+ 22 - 21
Assets/Scripts/Core/Pool/GPool/ParticleSystemPool.cs

@@ -1,11 +1,9 @@
 using System;
-
 using Fort23.Core;
 using Fort23.Mono;
 
 #if !COMBAT_SERVER
 using CombatLibrary.CombatLibrary.CombatCore.GPool;
-
 using UnityEngine;
 #endif
 
@@ -18,30 +16,32 @@ namespace Fort23.UTool
         //public string endPlayerPartic;
         protected ParticleSystem[] m_particles;
         protected RenderSetting[] m_renderSetting;
-      
+
         protected DelayShow[] delayShows;
         public float delayTime;
         protected float currDelayTime;
         public string endFx;
         private bool isShow;
 
-  
+
+        public System.Action<ParticleSystemPool> OnEndFx;
+
         /// <summary>
         /// 播放速度
         /// </summary>
-        public float palySpeed = (float) 1;
+        public float palySpeed = (float)1;
 
-  
 
         private BetterList<ParticleSystem> _lastLoopFx = new BetterList<ParticleSystem>();
 
         private LoopDelayHide _loopDelayHide;
         protected HideShowEndFx _hideShowEndFx;
+
         public ParticleSystem[] Particles
         {
             get
             {
-                if (m_particles == null&&transform!=null)
+                if (m_particles == null && transform != null)
                 {
                     m_particles = transform.GetComponentsInChildren<ParticleSystem>(false);
                 }
@@ -49,11 +49,12 @@ namespace Fort23.UTool
                 return m_particles;
             }
         }
+
         public Animator[] Animators
         {
             get
             {
-                if (m_animators == null&&transform!=null)
+                if (m_animators == null && transform != null)
                 {
                     m_animators = transform.GetComponentsInChildren<Animator>(false);
                 }
@@ -61,14 +62,14 @@ namespace Fort23.UTool
                 return m_animators;
             }
         }
-        
+
         private Animator[] m_animators;
 
         public RenderSetting[] RenderSetting
         {
             get
             {
-                if (m_renderSetting == null&&transform!=null)
+                if (m_renderSetting == null && transform != null)
                 {
                     m_renderSetting = transform.GetComponentsInChildren<RenderSetting>(false);
                 }
@@ -90,8 +91,6 @@ namespace Fort23.UTool
             }
         }
 
-       
-
 
         [ContextMenu("Replay")]
         public void Replay()
@@ -133,8 +132,6 @@ namespace Fort23.UTool
 
         public override async CTask DelayHide()
         {
-    
-
             if (_loopDelayHide == null)
             {
                 await base.DelayHide();
@@ -159,11 +156,11 @@ namespace Fort23.UTool
 
             if (loopTime)
             {
-                await TimerComponent.Instance.WaitAsync((int) (_loopDelayHide.delayTime * 1000));
+                await TimerComponent.Instance.WaitAsync((int)(_loopDelayHide.delayTime * 1000));
             }
         }
 
-        
+
         protected override void ProActiveObj()
         {
             //gameObject.SetActive(true);
@@ -190,8 +187,8 @@ namespace Fort23.UTool
                     DelayShows[i].Init();
                 }
             }
-         
-            currDelayTime = (float) 0;
+
+            currDelayTime = (float)0;
             StaticUpdater.Instance.AddRenderUpdateCallBack(UpdatePool);
             isShow = true;
         }
@@ -208,17 +205,18 @@ namespace Fort23.UTool
 
         public bool IsFinish()
         {
-            if (Particles.Length <= 0&&delayTime<=0)//没有特效的表现
+            if (Particles.Length <= 0 && delayTime <= 0) //没有特效的表现
             {
                 delayTime = 30;
             }
+
             if (currDelayTime < delayTime)
             {
                 return false;
             }
 
             bool isFinish = true;
-          
+
 
             for (int i = 0; i < Particles.Length; i++)
             {
@@ -232,7 +230,7 @@ namespace Fort23.UTool
                 }
             }
 
-         
+
             return isFinish;
         }
 
@@ -286,6 +284,8 @@ namespace Fort23.UTool
             }
 
             gameObject.SetActive(false);
+            OnEndFx?.Invoke(this);
+            OnEndFx = null;
         }
         //private void PlayerEnd()
         //{
@@ -304,6 +304,7 @@ namespace Fort23.UTool
             {
                 return;
             }
+
             base.ProOnDestroy();
             //if (endPlayerPartic != null)
             //{

+ 1 - 1
Assets/Scripts/Core/State/StateControl.cs

@@ -32,7 +32,7 @@ namespace Core.State
                 _currIState.Update(t);
             }
         }
-
+    
         public void ChangeState(string name, IStateEnterData iStateEnterData = null)
         {
             if (name.Equals(CurrStateName))

+ 8 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs

@@ -103,6 +103,14 @@ namespace GameLogic.Combat.CombatTool
             stateControl.Update(t);
             CombatTypeBasic?.Update(t);
             CombatTimerManager.Instance.ComabtUpdate(t);
+
+
+            LateUpdate();
+        }
+
+        public void LateUpdate()
+        {
+            CombatHeroController.LateUpdate();
         }
 
         public void PlayAudio(string audioName, bool isLoop)

+ 7 - 2
Assets/Scripts/GameLogic/Combat/CombatTool/CombatHeroController.cs

@@ -138,9 +138,14 @@ namespace GameLogic.Combat.CombatTool
                 heroDie[i].Update(t);
             }
 
+        }
+
+        public void LateUpdate()
+        {
+            
             for (int i = 0; i < heroDispose.Count; i++)
             {
-                heroDispose[i].Dispose();
+                CObjectPool.Instance.Recycle(heroDispose[i]);
             }
 
             heroDispose.Clear();
@@ -202,7 +207,7 @@ namespace GameLogic.Combat.CombatTool
                     continue;
                 }
 
-                c.CurrCombatHeroInfo.hp=c.MaxCombatHeroInfo.hp;
+                c.CurrCombatHeroInfo.hp = c.MaxCombatHeroInfo.hp;
                 HeroHpUpdateEventData heroHpUpdateEventData = HeroHpUpdateEventData.Create();
                 heroHpUpdateEventData.combatHeroEntity = c;
                 CombatEventManager.Instance.Dispatch(CombatEventType.HeroHpUpdate, heroHpUpdateEventData);

+ 3 - 2
Assets/Scripts/GameLogic/Combat/CombatTool/SkillScriptManager.cs

@@ -27,8 +27,9 @@ namespace GameLogic.Combat.CombatTool
 
                         return null;
                     }
-                    // CObjectPool.Instance.F
-                    SkillBasic sb = (SkillBasic)System.Activator.CreateInstance(type);
+
+                    // SkillBasic 
+                    SkillBasic sb = (SkillBasic)CObjectPool.Instance.Fetch(type);;
                     sb.InitSkillConfig(skillConfig);
                     return sb;
                 }

+ 3 - 3
Assets/Scripts/GameLogic/Combat/CombatType/LevelBattleCombatType.cs

@@ -207,7 +207,7 @@ namespace GameLogic.Combat.CombatType
         {
             _currNodeWavesIndex = 0;
             CombatController.currActiveCombat.CombatHeroController.SetFollowTarget();
-      
+
             FindNextConfig();
             InitTestCombatBoChi();
             CreateEnemy(new CTaskAwaitBuffer());
@@ -355,7 +355,7 @@ namespace GameLogic.Combat.CombatType
         private void CreateEnemy(CTaskAwaitBuffer cTaskAwaitBuffer, int monsterId, int level, int star, int index,
             System.Action<CombatHeroEntity> callBack = null)
         {
-            CombatHeroEntity heroEntity = new CombatHeroEntity();
+            CombatHeroEntity heroEntity = CObjectPool.Instance.Fetch<CombatHeroEntity>();
             heroEntity.IsEnemy = true;
             CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
             combatHeroInfo.InitMonster(monsterId, level, star);
@@ -405,7 +405,7 @@ namespace GameLogic.Combat.CombatType
             foreach (KeyValuePair<int, HeroInfo> keyValuePair in PlayerManager.Instance.heroController.heroDicInLead)
             {
                 int index = i;
-                CombatHeroEntity heroEntity = new CombatHeroEntity();
+                CombatHeroEntity heroEntity = CObjectPool.Instance.Fetch<CombatHeroEntity>();
                 heroEntity.IsEnemy = false;
                 heroEntity.number = i;
                 Vector3 pos = _combatScenesConfig.heroPoint[index].position;

+ 33 - 1
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -13,7 +13,8 @@ using UnityEngine.AI;
 using UnityEngine.Rendering;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
-public class CombatHeroEntity : ITimeLineSpecialDotPos, ILifeCycle, ITimeLineAnimtion, ITimeLineGetAttSpeed, IHero
+public class CombatHeroEntity : CObject, ITimeLineSpecialDotPos, ILifeCycle, ITimeLineAnimtion, ITimeLineGetAttSpeed,
+    IHero
 {
     /// <summary>
     /// 死亡时的节点ID
@@ -45,6 +46,8 @@ public class CombatHeroEntity : ITimeLineSpecialDotPos, ILifeCycle, ITimeLineAni
     private bool _isAddinjuriedShow;
     private float _addInjuiedValue = (1.0f / 0.2f) * 0.3f;
 
+    private bool _isDis;
+
     public Vector3 dotPos
     {
         get { return combatHeroGameObject.position; }
@@ -316,6 +319,13 @@ public class CombatHeroEntity : ITimeLineSpecialDotPos, ILifeCycle, ITimeLineAni
 
     public void Dispose()
     {
+        if (_isDis)
+        {
+            return;
+        }
+
+        _isDis = true;
+
         CombatHeroSkillControl.Dispose();
         combatHeroGameObject.Dispose();
         CombatAIBasic.Dispose();
@@ -323,4 +333,26 @@ public class CombatHeroEntity : ITimeLineSpecialDotPos, ILifeCycle, ITimeLineAni
         combatHeroAnimtion.Dispose();
         CloseLoopFx();
     }
+
+    public override void ActiveObj()
+    {
+        isDie = false;
+        _isDis = false;
+    }
+
+    public override void DormancyObj()
+    {
+        Dispose();
+        _isDis = false;
+        CombatAIBasic = null;
+        combatHeroGameObject = null;
+        CurrCombatHeroInfo = null;
+        MaxCombatHeroInfo = null;
+        combatHeroTimeLineControl = null;
+        combatHeroAnimtion = null;
+        CombatHeroSkillControl = null;
+        isFollowState = false;
+        heroLoopParticle.Clear();
+        isDie = true;
+    }
 }

+ 2 - 2
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControl.cs

@@ -61,7 +61,7 @@ namespace GameLogic.Combat.Hero
             {
                 SkillConfig skillConfig = ConfigComponent.Instance.Get<SkillConfig>(skillIDs[i]);
                 // SkillConfig skillConfig = skillIDs[i];
-                SkillBasic skillBasic= GetSkillBasic(skillConfig.IDGroup);
+                SkillBasic skillBasic = GetSkillBasic(skillConfig.IDGroup);
                 if (skillBasic == null)
                 {
                     AddSkill(skillConfig);
@@ -209,7 +209,7 @@ namespace GameLogic.Combat.Hero
             for (int i = 0; i < allSkill.size; i++)
             {
                 SkillBasic skillBasic = allSkill[i];
-                skillBasic.Dispose();
+                CObjectPool.Instance.Recycle(skillBasic);
             }
 
             allSkill.Clear();

+ 37 - 25
Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs

@@ -46,6 +46,8 @@ namespace GameLogic.Combat.Skill
             get { return _combatHeroEntity; }
         }
 
+        private bool _isDis;
+
         /// <summary>
         /// 当前激活技能的TimeLine数据
         /// </summary>
@@ -136,7 +138,6 @@ namespace GameLogic.Combat.Skill
 
         public override void ActiveObj()
         {
-            
         }
 
         /// <summary>
@@ -144,9 +145,10 @@ namespace GameLogic.Combat.Skill
         /// </summary>
         public override void DormancyObj()
         {
+            Dispose();
             _enterAlertTarget.Clear();
             _currUseSkillTarget.Clear();
-            
+
             _triggerCallBack.Clear();
             _earlyWarningFx = null;
             _earlyWarningFristHero = null;
@@ -160,7 +162,7 @@ namespace GameLogic.Combat.Skill
             SkillMaxCd = 0;
             currUseAllTimeLineLogic.Clear();
             finishCallBack = null;
-
+            _isDis = false;
         }
 
         public virtual void ActiveLimitSkill()
@@ -197,7 +199,6 @@ namespace GameLogic.Combat.Skill
 
         protected virtual void ProInitSkillConfig()
         {
-            
         }
 
         /// <summary>
@@ -224,13 +225,13 @@ namespace GameLogic.Combat.Skill
         {
         }
 
-      
+
         public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroHitPoint target, long att, AttType attType,
             TriggerData triggerData, HarmType harmType = HarmType.Null)
         {
             if (target == null || target.combatHeroEntity == null)
             {
-                return  null;
+                return null;
             }
 
             return CombatCalculateTool.Instance.Harm(source, target, att, attType, triggerData,
@@ -274,6 +275,12 @@ namespace GameLogic.Combat.Skill
 
         public override void Dispose()
         {
+            if (_isDis)
+            {
+                return;
+            }
+
+            _isDis = true;
             currUseAllTimeLineLogic.Clear();
             ProDispose();
             _combatHeroEntity = null;
@@ -370,15 +377,14 @@ namespace GameLogic.Combat.Skill
             {
                 if (timeLineEventLogicGroup != null)
                 {
-                    
                     timeLineEventLogicGroup.extraData = extraData;
-                    timeLineEventLogicGroup.SetCombatInfo(_combatHeroEntity, this, currTarget, triggerData, customizePos);
+                    timeLineEventLogicGroup.SetCombatInfo(_combatHeroEntity, this, currTarget, triggerData,
+                        customizePos);
                     timeLineEventLogicGroup.TimeLineUpdateEnd = finishCallBack;
                     timeLineEventLogicGroup.timeLineTime = startTime;
                     _combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup);
                     currUseAllTimeLineLogic.Add(timeLineEventLogicGroup);
                 }
-
             }
             catch (Exception e)
             {
@@ -549,7 +555,6 @@ namespace GameLogic.Combat.Skill
 
         protected virtual void ProInitSkill()
         {
-            
         }
 
         protected abstract void ProUseSkill();
@@ -562,8 +567,11 @@ namespace GameLogic.Combat.Skill
                 return null;
             }
 
-            return new[] {  CombatHeroEntity.CombatAIBasic.currFocusTarget.GetThis<CombatHeroEntity>()
-                .GetMainHotPoin<ILifetCycleHitPoint>() };
+            return new[]
+            {
+                CombatHeroEntity.CombatAIBasic.currFocusTarget.GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<ILifetCycleHitPoint>()
+            };
         }
 
         /// <summary>
@@ -649,17 +657,18 @@ namespace GameLogic.Combat.Skill
         {
         }
 
-        public void InitAlert(TimeLineAlertSeriailztion timeLineAlertSeriailztion,GameObject gameObject)
+        public void InitAlert(TimeLineAlertSeriailztion timeLineAlertSeriailztion, GameObject gameObject)
         {
             CombatAlertManager.Instance.AddAlert(gameObject, _combatHeroEntity);
         }
 
-        public void LeaveAlert(TimeLineAlertSeriailztion timeLineAlertSeriailztion,GameObject gameObject)
+        public void LeaveAlert(TimeLineAlertSeriailztion timeLineAlertSeriailztion, GameObject gameObject)
         {
+            _enterAlertTarget.Clear();
             CombatAlertManager.Instance.RemoveAlert(gameObject);
         }
 
-        public void Enter(TimeLineAlertSeriailztion timeLineAlertSeriailztion, Collider collider,GameObject gameObject)
+        public void Enter(TimeLineAlertSeriailztion timeLineAlertSeriailztion, Collider collider, GameObject gameObject)
         {
             HeroEntityMono heroEntityMono = collider.gameObject.GetComponent<HeroEntityMono>();
             if (heroEntityMono == null)
@@ -668,8 +677,8 @@ namespace GameLogic.Combat.Skill
             }
 
             CombatHeroEntity target = heroEntityMono.combatHeroEntity;
-            if ( timeLineAlertSeriailztion.isFindEnemy&& target.IsEnemy==_combatHeroEntity.IsEnemy ||
-                 timeLineAlertSeriailztion.isFindMyHero&& target.IsEnemy!=_combatHeroEntity.IsEnemy )
+            if (timeLineAlertSeriailztion.isFindEnemy && target.IsEnemy == _combatHeroEntity.IsEnemy ||
+                timeLineAlertSeriailztion.isFindMyHero && target.IsEnemy != _combatHeroEntity.IsEnemy)
             {
                 return;
             }
@@ -686,22 +695,23 @@ namespace GameLogic.Combat.Skill
                 alertTriggerEventData.combatHeroEntity = target;
                 alertTriggerEventData.attackEntity = _combatHeroEntity;
                 alertTriggerEventData.collider = collider;
-                alertTriggerEventData.triggerObject= gameObject;
+                alertTriggerEventData.triggerObject = gameObject;
                 alertTriggerEventData.isTrigger = true;
                 CombatEventManager.Instance.Dispatch(CombatEventType.AlertTrigger, alertTriggerEventData);
             }
 
-            ProHeroEnter(timeLineAlertSeriailztion,target);
+            ProHeroEnter(timeLineAlertSeriailztion, target);
         }
 
-        protected virtual void ProHeroEnter(TimeLineAlertSeriailztion timeLineAlertSeriailztion, CombatHeroEntity target )
+        protected virtual void ProHeroEnter(TimeLineAlertSeriailztion timeLineAlertSeriailztion,
+            CombatHeroEntity target)
         {
         }
 
-        public void Leave(TimeLineAlertSeriailztion timeLineAlertSeriailztion, Collider collider,GameObject gameObject)
+        public void Leave(TimeLineAlertSeriailztion timeLineAlertSeriailztion, Collider collider, GameObject gameObject)
         {
             HeroEntityMono heroEntityMono = collider.gameObject.GetComponent<HeroEntityMono>();
-            if (heroEntityMono == null||CombatHeroEntity==null)
+            if (heroEntityMono == null || CombatHeroEntity == null)
             {
                 return;
             }
@@ -725,13 +735,15 @@ namespace GameLogic.Combat.Skill
                 alertTriggerEventData.attackEntity = _combatHeroEntity;
                 alertTriggerEventData.collider = collider;
                 alertTriggerEventData.isTrigger = false;
-                alertTriggerEventData.triggerObject= gameObject;
+                alertTriggerEventData.triggerObject = gameObject;
                 CombatEventManager.Instance.Dispatch(CombatEventType.AlertTrigger, alertTriggerEventData);
             }
 
-            ProHeroLeave(timeLineAlertSeriailztion,target);
+            ProHeroLeave(timeLineAlertSeriailztion, target);
         }
-        protected virtual void ProHeroLeave(TimeLineAlertSeriailztion timeLineAlertSeriailztion, CombatHeroEntity target )
+
+        protected virtual void ProHeroLeave(TimeLineAlertSeriailztion timeLineAlertSeriailztion,
+            CombatHeroEntity target)
         {
         }
     }

+ 8 - 4
Assets/Scripts/GameLogic/Paritcle/GameTimeLineParticleFactory.cs

@@ -14,7 +14,7 @@ using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 public class GameTimeLineParticleFactory : ITimeLineParticleFactory
 {
-    protected BetterList <CombatParticleSystemPool> allCombatParticleSystem =
+    protected BetterList<CombatParticleSystemPool> allCombatParticleSystem =
         new BetterList<CombatParticleSystemPool>();
 
     protected BetterList<FxAILogicBasic> allFxAiLogicBasic = new BetterList<FxAILogicBasic>();
@@ -106,6 +106,11 @@ public class GameTimeLineParticleFactory : ITimeLineParticleFactory
             false, targetSpecialDotInfo, delegate(ParticleSystemPool combatParticleSystemPool)
             {
                 CombatParticleSystemPool pool = combatParticleSystemPool as CombatParticleSystemPool;
+                if (pool == null)
+                {
+                    callBack?.Invoke(null);
+                    return;
+                }
 #if !COMBAT_SERVER
                 pool.InitCombatParticleSystem();
 #endif
@@ -166,7 +171,6 @@ public class GameTimeLineParticleFactory : ITimeLineParticleFactory
                          timeLineEventParticleLogicBasic.timeLinePlayFxSerializtion.locationType !=
                          FXLocationType.SceneZero)
                 {
-                  
                     pool.transform.SetParent(targetSpecialDotInfo.targetTran);
                     pool.transform.localEulerAngles = Vector3.zero;
                     pool.transform.localPosition = Vector3.zero;
@@ -211,10 +215,10 @@ public class GameTimeLineParticleFactory : ITimeLineParticleFactory
             {
                 if (pool == null)
                 {
+                    callBack?.Invoke(null);
                     return;
                 }
 
-          
 
                 if (isRotate && fxTarget != null)
                 {
@@ -227,7 +231,7 @@ public class GameTimeLineParticleFactory : ITimeLineParticleFactory
                 }
 
                 float size = 1;
-         
+
 
                 pool.SetSize(size);
                 pool.own.transform.position = startPos;

+ 159 - 0
Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxNavigationLogic.cs

@@ -0,0 +1,159 @@
+using System.Collections;
+using System.Collections.Generic;
+using Common.Combat.FxAILogic;
+using Core.Audio;
+using Core.Triiger;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+[AddComponentMenu("特效脚本/弹道/导航型子弹")]
+public class FxNavigationLogic : FxAILogicBasic
+{
+    public float speed;
+    [Header("多少秒后开始导航")] public float delayNavigation;
+    [Header("最长持续时间")] public float continuedTime=10;
+    public int PenetrateCount=1;
+    private IUnRegister UnRegister = null;
+
+    private Vector3 endPos;
+    private Vector3 dir;
+
+    private float currTime;
+    private bool NavigationState;
+
+    private int _currPenetrateCount;
+    // private float _NavigationInterval;
+
+    protected CombatHeroEntity _currNavigationTargetHero;
+
+    protected override void ProInit()
+    {
+        UnRegister = gameObject.OnTriggerEnterEvent(OnTriggerEnterEvent);
+        if (isUseCustomTargetEndPos)
+        {
+            endPos = TimeLineEventParticleLogicBasic.customizePos[
+                customTargetEndPosIndex];
+        }
+        else
+        {
+            endPos = AttTarget.GetSpecialDotInfo("hitpos").GetWorlPos();
+        }
+
+        endPos = new Vector3(endPos.x, CurrPos.y, endPos.z);
+        dir = (endPos - CurrPos).normalized;
+        gameObject.transform.rotation = Quaternion.LookRotation(dir);
+        NavigationState = false;
+        currTime = 0;
+        _currPenetrateCount = 0;
+    }
+
+    protected void OnTriggerEnterEvent(Collider collision)
+    {
+        HeroEntityMono heroEntityMono = collision.gameObject.GetComponent<HeroEntityMono>();
+        if (heroEntityMono == null)
+        {
+            return;
+        }
+
+        CombatHeroEntity target = heroEntityMono.combatHeroEntity;
+        if (target.IsEnemy == CombatHeroEntity.IsEnemy)
+        {
+            return;
+        }
+
+        ITimeLineTriggerEvent timeLineTriggerEvent =
+            TimeLineEventParticleLogicBasic.ITimeLineTriggerEntity as ITimeLineTriggerEvent;
+        if (timeLineTriggerEvent != null)
+        {
+            timeLineTriggerEvent.TimeLineTrigger(TimeLineEventParticleLogicBasic.TimeLineEventLogicGroup.groupName,
+                target.GetMainHotPoin<ILifetCycleHitPoint>(), this, triggerData);
+            if (!string.IsNullOrEmpty(hitFxName))
+            {
+                CombatController.currActiveCombat.GameTimeLineParticleFactory.CreateParticle(hitFxName,
+                    collision.ClosestPoint(gameObject.transform.position), null, false, null, null);
+            }
+
+            _currPenetrateCount++;
+            AudioManager.Instance.PlayAudio(hitAudioName, false);
+
+            if (!isPenetrate||_currPenetrateCount>=PenetrateCount)
+            {
+                Dispose();
+            }
+        }
+    }
+
+    protected override void ProCombatUpdate(float time)
+    {
+        currTime += time;
+        if (!NavigationState)
+        {
+            // if (Vector3.SqrMagnitude(_currPos - startPos) > 200)
+            // {
+            //     Dispose();
+            // }
+            if (currTime > delayNavigation)
+            {
+                NavigationState = true;
+            }
+        }
+
+        if (_currNavigationTargetHero == null || _currNavigationTargetHero.isDie)
+        {
+            FindNavigationTarget();
+        }
+
+        if (_currNavigationTargetHero != null)
+        {
+           // Vector3 dotPos= _currNavigationTargetHero.dotPos + new Vector3(0, 0.5f, 0);
+           // _currPos=
+            Vector3 newDir = (_currNavigationTargetHero.dotPos - _currPos).normalized;
+            dir = Vector3.Lerp(dir, newDir, 0.2f);
+            dir.y= 0;
+            dir.Normalize();
+        }
+
+        Vector3 lastPos = _currPos;
+        Vector3 movePos = dir * speed * time;
+
+
+        _currPos += movePos;
+        gameObject.transform.position = _currPos;
+        gameObject.transform.rotation = Quaternion.LookRotation(dir);
+        if (currTime > continuedTime)
+        {
+            Dispose();
+            return;
+        }
+    }
+
+
+    private void FindNavigationTarget()
+    {
+        CombatHeroEntity[] allHero =
+            CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
+        if (allHero == null || allHero.Length <= 0)
+        {
+            return;
+        }
+
+        int index = CombatCalculateTool.Instance.GetOdd(0, allHero.Length);
+        _currNavigationTargetHero = allHero[index];
+        // for (int i = 0; i < allHero.Length; i++)
+        // {
+        //     
+        // }
+    }
+
+    protected override void ProDispose()
+    {
+        if (UnRegister != null)
+        {
+            UnRegister.UnRegister();
+        }
+
+        UnRegister = null;
+    }
+}

+ 11 - 0
Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxNavigationLogic.cs.meta

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

+ 14 - 0
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineAlertLogic.cs

@@ -14,18 +14,31 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
         private GameObjectPool _newGameObjectPool;
         private TimeLineAlertSeriailztion timeLineAlertSeriailztion;
 
+        protected bool isManualClose;
+
         protected override void ProSetCombatInfo()
         {
         }
 
+        protected override void ProDormancyObj()
+        {
+        }
+
+        public override bool IsFinish()
+        {
+            return !isManualClose;
+        }
+
         protected override void ProEnter()
         {
+          
             _enterRegister?.UnRegister();
             _exitRegister?.UnRegister();
             _enterRegister = null;
             _exitRegister = null;
             timeLineAlertSeriailztion =
                 mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
+            isManualClose = timeLineAlertSeriailztion.manualClose;
             if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
             {
                 SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
@@ -123,6 +136,7 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
 
         protected override void ProBreakTimeLine()
         {
+            isManualClose = false;
             ClearTrigger();
         }
 

+ 76 - 19
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineEventParticleLogicBasic.cs

@@ -6,7 +6,6 @@ using Fort23.Core;
 using Fort23.Core;
 #endif
 using Fort23.UTool;
-
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 #if !COMBAT_SERVER
 using UnityEngine;
@@ -18,18 +17,28 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
     {
         // private Timer timer;
 
-        private List<Clock> loadTask = new List<Clock>();
-
-        public List<ParticleSystemPool> loopFx = new List<ParticleSystemPool>();
-
+        private BetterList<Clock> loadTask = new BetterList<Clock>();
+        // private BetterList<string> long = new BetterList<Clock>();
+        public BetterList<ParticleSystemPool> loopFx = new BetterList<ParticleSystemPool>();
+        public BetterList<ParticleSystemPool> _allLoadFx = new BetterList<ParticleSystemPool>();
         private CombatTimer _combatTimer;
 
+        private int _loadCount;
         public TimeLinePlayFxSerializtion timeLinePlayFxSerializtion
         {
             get { return mTimeLineAssetSerialization as TimeLinePlayFxSerializtion; }
         }
 
 
+        protected override void ProDormancyObj()
+        {
+            loopFx.Clear();
+            _allLoadFx.Clear();
+            loadTask.Clear();
+            CombatTimerManager.Instance.RemoveTimer(_combatTimer);
+            _combatTimer = null;
+        }
+
         protected override void ProSetCombatInfo()
         {
         }
@@ -54,7 +63,6 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
 
         protected override void ProBreakTimeLine()
         {
-           
             for (int i = 0; i < loadTask.Count; i++)
             {
                 loadTask[i].Dispose();
@@ -66,15 +74,43 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
             loadTask.Clear();
         }
 
+        public override bool IsFinish()
+        {
+            return _allLoadFx.Count <= 0 && _loadCount <= 0;
+        }
+
         public void CloseLoopFx()
         {
-            for (int i = 0; i < loopFx.Count; i++)
+            if (loopFx.Count <= 0)
             {
-                GObjectPool.Instance.Recycle(loopFx[i]);
+                return;
             }
+
+            ParticleSystemPool[] pool = loopFx.ToArray();
+            for (int i = 0; i < pool.Length; i++)
+            {
+                GObjectPool.Instance.Recycle(pool[i]);
+            }
+
             loopFx.Clear();
         }
 
+        public void CloseAllFx()
+        {
+            if (_allLoadFx.Count <= 0)
+            {
+                return;
+            }
+
+            ParticleSystemPool[] pool = _allLoadFx.ToArray();
+            for (int i = 0; i < pool.Length; i++)
+            {
+                GObjectPool.Instance.Recycle(pool[i]);
+            }
+
+            _allLoadFx.Clear();
+        }
+
         protected override void ProDispose()
         {
             for (int i = 0; i < loadTask.Count; i++)
@@ -89,7 +125,11 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
             {
                 currTarget.Dispose();
             }
+
             currTarget = null;
+            CloseAllFx();
+            loopFx.Clear();
+            _allLoadFx.Clear();
         }
 
 
@@ -146,7 +186,7 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
                     {
                         ILifetCycleHitPoint newHitPoint =
                             fxTarget.IfLifeCycle.GetILifetCycleHitPoint<ILifetCycleHitPoint>(
-                                timeLinePlayFxSerializtion.hitPointGroupName, true,true);
+                                timeLinePlayFxSerializtion.hitPointGroupName, true, true);
                         targetSpecialDotInfo =
                             newHitPoint.GetSpecialDotInfo(timeLinePlayFxSerializtion.targetSpecialDotName);
                     }
@@ -157,29 +197,32 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
                     }
                 }
 
-                if (timeLinePlayFxSerializtion.isActivityCustomTargetPos&&customizePos!=null&&customizePos.Length>timeLinePlayFxSerializtion.CustomTargetPosIndex)
+                if (timeLinePlayFxSerializtion.isActivityCustomTargetPos && customizePos != null &&
+                    customizePos.Length > timeLinePlayFxSerializtion.CustomTargetPosIndex)
                 {
                     startPos = customizePos[timeLinePlayFxSerializtion.CustomTargetPosIndex];
                     targetSpecialDotInfo = null;
                 }
-                else if (targetSpecialDotInfo != null&&timeLinePlayFxSerializtion.locationType!=FXLocationType.SceneZero)
+                else if (targetSpecialDotInfo != null &&
+                         timeLinePlayFxSerializtion.locationType != FXLocationType.SceneZero)
                 {
                     startPos = targetSpecialDotInfo.GetWorlPos();
                 }
 
                 if (timeLinePlayFxSerializtion.isGround)
                 {
-                    startPos = new Vector3(startPos.x, (float) 0.7f);
+                    startPos = new Vector3(startPos.x, (float)0.7f);
                 }
 
-                LoadFx(lifeCycle, fxTarget, startPos,targetSpecialDotInfo);
+                LoadFx(lifeCycle, fxTarget, startPos, targetSpecialDotInfo);
             }
 
             index++;
             if (timeLinePlayFxSerializtion.intervalTime > 0)
             {
-                _combatTimer = CombatTimerManager.Instance.AddTimer((float)timeLinePlayFxSerializtion.intervalTime*index,
-                    delegate {  });
+                _combatTimer = CombatTimerManager.Instance.AddTimer(
+                    (float)timeLinePlayFxSerializtion.intervalTime * index,
+                    delegate { });
                 ExecuteFxTarget(combatTarget, index);
             }
             else
@@ -188,16 +231,26 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
             }
         }
 
+
+        protected void ParticleSystemPoolEndFx(ParticleSystemPool particleSystemPool)
+        {
+            loopFx.Remove(particleSystemPool);
+            _allLoadFx.Remove(particleSystemPool);
+        }
+
         protected void LoadFx(ILifetCycleHitPoint effectTarget, ILifetCycleHitPoint fxTarget, Vector3 startPos,
             SpecialDotInfo targetSpecialDotInfo)
         {
-           
-            ITimeLineParticleFactory iTimeLineParticleFactory =  TimeLineFxParticleTool.Instance.TimeLineFxParticleFactory;
+            ITimeLineParticleFactory iTimeLineParticleFactory =
+                TimeLineFxParticleTool.Instance.TimeLineFxParticleFactory;
             if (iTimeLineParticleFactory != null)
             {
-                Clock clock = iTimeLineParticleFactory.CreateParticle(this, effectTarget, fxTarget, startPos,targetSpecialDotInfo,
+                _loadCount++;
+                Clock   clock = iTimeLineParticleFactory.CreateParticle(this, effectTarget, fxTarget, startPos,
+                    targetSpecialDotInfo,
                     delegate(IGObjectPoolInterface systemPool)
                     {
+                        _loadCount--;
                         ParticleSystemPool pool = systemPool as ParticleSystemPool;
                         if (pool != null)
                         {
@@ -207,11 +260,15 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
                                 return;
                             }
 
+                            pool.OnEndFx = ParticleSystemPoolEndFx;
                             if (timeLinePlayFxSerializtion.isLoop)
                             {
                                 loopFx.Add(pool);
                             }
 
+                            _allLoadFx.Add(pool);
+
+
                             if (timeLinePlayFxSerializtion.isAttSpeed)
                             {
                                 ITimeLineParticlePlaySpeed timeLineParticlePlaySpeed =
@@ -223,7 +280,7 @@ namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
                             else
                             {
 #if !COMBAT_SERVER
-                                pool.palySpeed = (float) 1;
+                                pool.palySpeed = (float)1;
 #endif
                             }
 

+ 38 - 4
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogicBasic.cs

@@ -3,11 +3,12 @@ using System.Collections;
 using System.Collections.Generic;
 using CombatLibrary.CombatLibrary.CombatCore;
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Fort23.Core;
 using UnityEngine;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
 
-public abstract class TimeLineEventLogicBasic : IDisposable
+public abstract class TimeLineEventLogicBasic : CObject
 {
     public TimeLineAssetSerialization timeLineAssetSerialization
     {
@@ -24,6 +25,7 @@ public abstract class TimeLineEventLogicBasic : IDisposable
 
     protected bool IsLeave;
     protected bool IsDis;
+
     public ILifeCycle castEntity
     {
         get { return _castEntity; }
@@ -63,6 +65,11 @@ public abstract class TimeLineEventLogicBasic : IDisposable
 
     protected TimeLineEventLogicGroupBasic _timeLineEventLogicGroup;
 
+    public virtual bool IsFinish()
+    {
+        return true;
+    }
+
     public TimeLineEventLogicGroupBasic TimeLineEventLogicGroup
     {
         get { return _timeLineEventLogicGroup; }
@@ -102,6 +109,35 @@ public abstract class TimeLineEventLogicBasic : IDisposable
         }
     }
 
+    public override void ActiveObj()
+    {
+    }
+
+    /// <summary>
+    /// 休眠
+    /// </summary>
+    public override void DormancyObj()
+    {
+        // ProDispose();
+        Dispose();
+        ProDormancyObj();
+        mTimeLineAssetSerialization = null;
+        IsEnter = false;
+        IsLeave = false;
+        IsDis = false;
+        _castEntity = null;
+        _timeLineTriggerEntity = null;
+        _extraData = default;
+        currTarget = null;
+        _customizePos = null;
+        _timeLineEventLogicGroup = null;
+    }
+
+    protected virtual void ProDormancyObj()
+    {
+        
+    }
+
     protected void Enter()
     {
         ProEnter();
@@ -145,9 +181,8 @@ public abstract class TimeLineEventLogicBasic : IDisposable
         {
             currTarget.Clear();
         }
-
         ProBreakTimeLine();
-        Dispose();
+     
     }
 
 
@@ -240,6 +275,5 @@ public abstract class TimeLineEventLogicBasic : IDisposable
 
     protected virtual void ProDispose()
     {
-      
     }
 }

+ 39 - 10
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogicGroupBasic.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using Fort23.Core;
 using Fort23.UTool;
 using UnityEngine;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
@@ -11,7 +12,7 @@ namespace CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic
     /// 把一些列clip进行管理起来(动画、声音、特效),组成一个技能所需的所有资源。
     /// 一般来说,就是一个track group下面的所有track里的所有clip
     /// </summary>
-    public class TimeLineEventLogicGroupBasic : IDisposable
+    public class TimeLineEventLogicGroupBasic 
     {
         public object extraData;
 
@@ -90,6 +91,31 @@ namespace CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic
             return false;
         }
 
+        public bool isFinish()
+        {
+            for (int i = 0; i < timeLineLogic.Count; i++)
+            {
+                bool isFinish = timeLineLogic[i].IsFinish();
+                if (!isFinish)
+                {
+                    return false;
+                }
+                else
+                {
+                    RecycleTimeLine(timeLineLogic[i]);
+                    i--;
+                }
+            }
+
+            return true;
+        }
+
+        protected void RecycleTimeLine(TimeLineEventLogicBasic timeLineEventLogicBasic)
+        {
+            timeLineLogic.Remove(timeLineEventLogicBasic);
+            CObjectPool.Instance.Recycle(timeLineEventLogicBasic);
+        }
+
         public virtual Vector3 SceneWorldPos()
         {
             return Vector3.one;
@@ -180,7 +206,12 @@ namespace CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic
         {
             if (updateEnd)
             {
-                return true;
+                if (isFinish())
+                {
+                    return true;
+                }
+
+                return false;
             }
 
 
@@ -233,11 +264,9 @@ namespace CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic
                 {
                     timeLineLogic[i].BreakTimeLine();
                 }
-
-                timeLineLogic.Clear();
             }
 
-            Dispose();
+            // Dispose();
         }
 
         public void CloseLoopFx()
@@ -275,10 +304,10 @@ namespace CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic
             }
         }
 
-        public void Dispose()
-        {
-            _AssociationGroupBasics.Clear();
-            timeLineLogic.Clear();
-        }
+        // public void Dispose()
+        // {
+        //     _AssociationGroupBasics.Clear();
+        //     timeLineLogic.Clear();
+        // }
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/CameraShakingSerializtion.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.Utility;
+using Fort23.Core;
 
 #if !COMBAT_SERVER
 
@@ -30,6 +31,6 @@ public class CameraShakingSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new CameraShakingLogic();
+        return CObjectPool.Instance.Fetch<CameraShakingLogic>();
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineActiveGameObjectSerializtion.cs

@@ -3,6 +3,7 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 /// <summary>
@@ -31,6 +32,6 @@ public class TimeLineActiveGameObjectSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineAudioEventLogic();
+        return CObjectPool.Instance.Fetch<TimeLineAudioEventLogic>();
     }
 }

+ 3 - 2
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineAlertSeriailztion.cs

@@ -1,4 +1,5 @@
-using UnityEngine.Playables;
+using Fort23.Core;
+using UnityEngine.Playables;
 using UnityEngine.Timeline;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
@@ -47,6 +48,6 @@ public class TimeLineAlertSeriailztion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineAlertLogic();
+          return CObjectPool.Instance.Fetch<TimeLineAlertLogic>();
     }
 }

+ 6 - 2
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineAudioSeralization.cs

@@ -3,20 +3,24 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 [System.Serializable]
 public class TimeLineAudioSeralization : TimeLineAssetSerialization
 {
     public string audioName;
+
     public bool isLoop;
+
     // public float volume;
     public TimeLineAudioSeralization()
     {
     }
 #if !COMBAT_SERVER
 
-    public TimeLineAudioSeralization(PlayableDirector playableDirector,   GroupTrack groupTrack,TimelineClip timelineClip): base(groupTrack,timelineClip)
+    public TimeLineAudioSeralization(PlayableDirector playableDirector, GroupTrack groupTrack,
+        TimelineClip timelineClip) : base(groupTrack, timelineClip)
     {
         AudioPlayableAsset audioPlayableAsset = timelineClip.asset as AudioPlayableAsset;
         if (audioPlayableAsset.clip != null)
@@ -29,6 +33,6 @@ public class TimeLineAudioSeralization : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineAudioEventLogic();
+        return CObjectPool.Instance.Fetch<TimeLineAudioEventLogic>();
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineCollisionTriggerSerializtion.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using Fort23.Core;
 using Fort23.UTool;
 
 #if !COMBAT_SERVER
@@ -68,6 +69,6 @@ public class TimeLineCollisionTriggerSerializtion : TimeLineAssetSerialization
 
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineCollisionTriggerLogic();
+        return CObjectPool.Instance.Fetch<TimeLineCollisionTriggerLogic>();
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineCurveSerializtion.cs

@@ -1,5 +1,6 @@
 using System.Collections.Generic;
 using CombatLibrary.CombatLibrary.CombatCore.Utility;
+using Fort23.Core;
 #if !COMBAT_SERVER
 
 using UnityEngine;
@@ -42,6 +43,6 @@ public class TimeLineCurveSerializtion : TimeLineAssetSerialization
 
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new DefaultTimeLineLogic();
+         return CObjectPool.Instance.Fetch<DefaultTimeLineLogic>();
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineEndSingSerializtion.cs

@@ -3,6 +3,7 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 [System.Serializable]
@@ -23,6 +24,6 @@ public class TimeLineEndSingSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineEndSingLogic();
+       return CObjectPool.Instance.Fetch<TimeLineEndSingLogic>();
     }
 }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineFallSeraliztion.cs

@@ -4,6 +4,7 @@ using UnityEngine.Playables;
 using UnityEngine.Timeline;
  
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 public class TimeLineFallSeraliztion : TimeLineAssetSerialization
 {
@@ -24,6 +25,6 @@ public class TimeLineFallSeraliztion : TimeLineAssetSerialization
 
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineFallLogic();
+        return CObjectPool.Instance.Fetch<TimeLineFallLogic>();
     }
 }

+ 4 - 2
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMaxTimeSerializtion.cs

@@ -4,7 +4,8 @@
     using UnityEngine.Timeline;
  
 #endif
-using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
+    using Fort23.Core;
+    using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
     public class TimeLineMaxTimeSerializtion : TimeLineAssetSerialization
     {
 
@@ -24,6 +25,7 @@ using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
         public override TimeLineEventLogicBasic CreateLogic()
         {
-            return new TimeLineDefectEventLogic();
+            // return new TimeLineDefectEventLogic();
+            return CObjectPool.Instance.Fetch<TimeLineDefectEventLogic>();
         }
     }

+ 2 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLinePlayFxSerializtion.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 using Object = System.Object;
 
@@ -95,6 +96,6 @@ public class TimeLinePlayFxSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineEventParticleLogicBasic();
+            return CObjectPool.Instance.Fetch<TimeLineEventParticleLogicBasic>();
     }
 }

+ 3 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineSkillPreparationSerializtion.cs

@@ -3,6 +3,7 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 
@@ -20,6 +21,7 @@ public class TimeLineSkillPreparationSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineSkillPreparationLogic();
+        
+        return CObjectPool.Instance.Fetch<TimeLineSkillPreparationLogic>();
     }
 }

+ 3 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineSkillStartSerializtion.cs

@@ -4,6 +4,7 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 [System.Serializable]
@@ -21,6 +22,7 @@ public class TimeLineSkillStartSerializtion : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineSkillStartEventLogic();
+        // return new TimeLineSkillStartEventLogic();
+        return CObjectPool.Instance.Fetch<TimeLineSkillStartEventLogic>();
     }
 }

+ 3 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineTriggerSerialization.cs

@@ -5,6 +5,7 @@ using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
 using CombatCore.SerializationTimeLine;
+using Fort23.Core;
 using Fort23.UTool;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
@@ -31,6 +32,7 @@ public class TimeLineTriggerSerialization : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TimeLineTimeTriggerEventLogicBasic();
+        // return new TimeLineTimeTriggerEventLogicBasic();
+        return CObjectPool.Instance.Fetch<TimeLineTimeTriggerEventLogicBasic>();
     }
 }

+ 3 - 1
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TineLineAnimationPlayableSerialization.cs

@@ -3,6 +3,7 @@
 using UnityEngine.Playables;
 using UnityEngine.Timeline;
 #endif
+using Fort23.Core;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
 [System.Serializable]
@@ -38,6 +39,7 @@ public class TineLineAnimationPlayableSerialization : TimeLineAssetSerialization
 #endif
     public override TimeLineEventLogicBasic CreateLogic()
     {
-        return new TineLineAnimationEventLogic();
+        // return new TineLineAnimationEventLogic();
+        return CObjectPool.Instance.Fetch<TineLineAnimationEventLogic>();
     }
 }

+ 4 - 4
Assets/Scripts/GameUI/GameApplctionMono.cs

@@ -10,10 +10,10 @@ namespace GameUI
         public void Update()
         {
 #if UNITY_EDITOR
-            if (EditorApplication.isPaused)
-            {
-                return;
-            }
+            // if (EditorApplication.isPaused)
+            // {
+            //     return;
+            // }
 #endif
 
 

+ 1 - 4
Packages/com.annulusgames.lit-motion@99e865bcf3/Runtime/LitMotion.asmdef

@@ -4,10 +4,7 @@
     "references": [
         "GUID:2665a8d13d1b3f18800f46e256720795",
         "GUID:e0cd26848372d4e5c891c569017e11f1",
-        "GUID:d8b63aba1907145bea998dd612889d6b",
-        "GUID:560b04d1a97f54a4e82edc0cbbb69285",
-        "GUID:f51ebe6a0ceec4240a699833d6309b23",
-        "GUID:5c01796d064528144a599661eaab93a6"
+        "GUID:d8b63aba1907145bea998dd612889d6b"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],

+ 92 - 92
UserSettings/Layouts/default-2022.dwlt

@@ -15,9 +15,9 @@ MonoBehaviour:
   m_PixelRect:
     serializedVersion: 2
     x: 3459
-    y: 656
+    y: 362
     width: 1526
-    height: 1036
+    height: 1030
   m_ShowMode: 0
   m_Title: Frame Debugger
   m_RootView: {fileID: 4}
@@ -43,7 +43,7 @@ MonoBehaviour:
     width: 2560
     height: 1349
   m_ShowMode: 4
-  m_Title: Game
+  m_Title: Console
   m_RootView: {fileID: 10}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
@@ -66,7 +66,7 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 1526
-    height: 1036
+    height: 1030
   m_MinSize: {x: 1000, y: 521}
   m_MaxSize: {x: 4000, y: 4021}
   m_ActualView: {fileID: 19}
@@ -93,11 +93,11 @@ MonoBehaviour:
     x: 0
     y: 0
     width: 1526
-    height: 1036
+    height: 1030
   m_MinSize: {x: 1000, y: 521}
   m_MaxSize: {x: 4000, y: 4021}
   vertical: 0
-  controlID: 787
+  controlID: 20
   draggingID: 0
 --- !u!114 &5
 MonoBehaviour:
@@ -114,10 +114,10 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 574
+    x: 604
     y: 0
-    width: 615
-    height: 939
+    width: 645
+    height: 1048
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
   m_ActualView: {fileID: 27}
@@ -144,12 +144,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1189
-    height: 939
+    width: 1249
+    height: 1048
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 24
+  controlID: 50
   draggingID: 0
 --- !u!114 &7
 MonoBehaviour:
@@ -166,12 +166,12 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 583
+    x: 1149
     y: 0
-    width: 606
-    height: 360
-  m_MinSize: {x: 102, y: 121}
-  m_MaxSize: {x: 4002, y: 4021}
+    width: 100
+    height: 251
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 22}
   m_Panes:
   - {fileID: 22}
@@ -194,8 +194,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 583
-    height: 360
+    width: 1149
+    height: 251
   m_MinSize: {x: 101, y: 121}
   m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 23}
@@ -221,13 +221,13 @@ MonoBehaviour:
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 939
-    width: 1189
-    height: 360
+    y: 1048
+    width: 1249
+    height: 251
   m_MinSize: {x: 200, y: 50}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 95
+  controlID: 73
   draggingID: 0
 --- !u!114 &10
 MonoBehaviour:
@@ -305,7 +305,7 @@ MonoBehaviour:
   m_MinSize: {x: 500, y: 100}
   m_MaxSize: {x: 40480, y: 16192}
   vertical: 0
-  controlID: 111
+  controlID: 221
   draggingID: 0
 --- !u!114 &13
 MonoBehaviour:
@@ -347,12 +347,12 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1189
+    width: 1249
     height: 1299
   m_MinSize: {x: 200, y: 100}
   m_MaxSize: {x: 16192, y: 16192}
   vertical: 1
-  controlID: 23
+  controlID: 49
   draggingID: 0
 --- !u!114 &15
 MonoBehaviour:
@@ -369,12 +369,12 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1189
+    x: 1249
     y: 0
-    width: 426
+    width: 263
     height: 1299
-  m_MinSize: {x: 202, y: 221}
-  m_MaxSize: {x: 4002, y: 4021}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 24}
   m_Panes:
   - {fileID: 24}
@@ -395,9 +395,9 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1615
+    x: 1512
     y: 0
-    width: 542
+    width: 656
     height: 1299
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
@@ -421,12 +421,12 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 2157
+    x: 2168
     y: 0
-    width: 403
+    width: 392
     height: 1299
-  m_MinSize: {x: 275, y: 50}
-  m_MaxSize: {x: 4000, y: 4000}
+  m_MinSize: {x: 276, y: 71}
+  m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 25}
   m_Panes:
   - {fileID: 25}
@@ -449,10 +449,10 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 574
-    height: 939
-  m_MinSize: {x: 200, y: 200}
-  m_MaxSize: {x: 4000, y: 4000}
+    width: 604
+    height: 1048
+  m_MinSize: {x: 201, y: 221}
+  m_MaxSize: {x: 4001, y: 4021}
   m_ActualView: {fileID: 28}
   m_Panes:
   - {fileID: 28}
@@ -481,9 +481,9 @@ MonoBehaviour:
   m_Pos:
     serializedVersion: 2
     x: 3459
-    y: 656
+    y: 362
     width: 1526
-    height: 1015
+    height: 1009
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -805,10 +805,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 583
-    y: 1012
-    width: 604
-    height: 339
+    x: 1149
+    y: 1121
+    width: 98
+    height: 230
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -849,9 +849,9 @@ MonoBehaviour:
   m_Pos:
     serializedVersion: 2
     x: 0
-    y: 1012
-    width: 582
-    height: 339
+    y: 1121
+    width: 1148
+    height: 230
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -882,9 +882,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1189
+    x: 1249
     y: 73
-    width: 424
+    width: 261
     height: 1278
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -901,7 +901,7 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 7850fbff9250fbff744cfcffb04efcff5665feff84faffff00a10000
+      m_ExpandedIDs: 84faffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -945,9 +945,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 2157
+    x: 2168
     y: 73
-    width: 402
+    width: 391
     height: 1278
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -992,9 +992,9 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1615
+    x: 1512
     y: 73
-    width: 540
+    width: 654
     height: 1278
   m_SerializedDataModeController:
     m_DataMode: 0
@@ -1017,7 +1017,7 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Scripts/GameStart
+    - Assets/ParticleEffectForUGUI/Scripts
     m_Globs: []
     m_OriginalText: 
     m_ImportLogFlags: 0
@@ -1025,16 +1025,16 @@ MonoBehaviour:
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Scripts/GameStart
+  - Assets/ParticleEffectForUGUI/Scripts
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\unityProject\XY001
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 182}
-    m_SelectedIDs: c6a50000
-    m_LastClickedID: 42438
-    m_ExpandedIDs: 000000001ca200001ea2000020a2000022a2000024a2000026a200002aa200002ca200002ea2000030a2000032a2000034a2000036a2000038a200003aa200003ca200003ea2000040a2000042a2000044a2000046a2000048a200004aa200004ca200004ea2000050a2000052a2000054a2000056a2000058a200005aa200005ca200005ea2000060a2000062a2000064a2000068a20000bea40000d2a40000faa40000a4a50000563101000432010000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 0}
+    m_SelectedIDs: 86a80000
+    m_LastClickedID: 43142
+    m_ExpandedIDs: 00000000e8a30000eaa30000eca30000eea30000f0a30000f2a30000f4a30000f6a30000f8a30000faa30000fca30000fea3000000a4000002a4000004a4000006a4000008a400000aa400000ca400000ea4000010a4000012a4000014a4000016a4000018a400001aa400001ca400001ea4000020a4000022a4000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a40000aca6000000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -1062,7 +1062,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000001ca200001ea2000020a2000022a2000024a2000026a2000028a200002aa200002ca200002ea2000030a2000032a2000034a2000036a2000038a200003aa200003ca200003ea2000040a2000042a2000044a2000046a2000048a200004aa200004ca200004ea2000050a2000052a2000054a2000056a2000058a200005aa200005ca200005ea2000060a2000062a2000064a2000066a2000068a20000
+    m_ExpandedIDs: 00000000e8a30000eaa30000eca30000eea30000f0a30000f2a30000f4a30000f6a30000f8a30000faa30000fca30000fea3000000a4000002a4000004a4000006a4000008a400000aa400000ca400000ea4000010a4000012a4000014a4000016a4000018a400001aa400001ca400001ea4000020a4000022a4000024a4000026a4000028a400002aa400002ca400002ea4000030a4000032a4000034a4000036a4000038a400003aa400003ca400003ea4000040a4000042a4000044a4000046a40000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -1093,18 +1093,18 @@ MonoBehaviour:
     m_ExpandedInstanceIDs: d02e01001ef900002afc000092f80000f0f70000d8fa000046fa0000f0f80000dc5b0100d05b0100c85b0100cc5b01004a0b0100de0b0100de0a01009e0b0100220b01002a4201007a490100aa4401008a4301006a4e0100
     m_RenameOverlay:
       m_UserAcceptedRename: 0
-      m_Name: BuildPostProcessor
-      m_OriginalName: BuildPostProcessor
+      m_Name: 
+      m_OriginalName: 
       m_EditFieldRect:
         serializedVersion: 2
         x: 0
         y: 0
         width: 0
         height: 0
-      m_UserData: 18506
+      m_UserData: 0
       m_IsWaitingForDelay: 0
       m_IsRenaming: 0
-      m_OriginalEventType: 0
+      m_OriginalEventType: 11
       m_IsRenamingFilename: 1
       m_ClientGUIView: {fileID: 16}
     m_CreateAssetUtility:
@@ -1117,7 +1117,7 @@ MonoBehaviour:
     m_ScrollPosition: {x: 0, y: 0}
     m_GridSize: 16
   m_SkipHiddenPackages: 0
-  m_DirectoriesAreaWidth: 259
+  m_DirectoriesAreaWidth: 230
 --- !u!114 &27
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -1138,10 +1138,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 574
+    x: 604
     y: 73
-    width: 613
-    height: 918
+    width: 643
+    height: 1027
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1194,23 +1194,23 @@ MonoBehaviour:
       serializedVersion: 2
       x: 0
       y: 21
-      width: 613
-      height: 897
-    m_Scale: {x: 0.5523399, y: 0.5523399}
-    m_Translation: {x: 306.5, y: 448.5}
+      width: 643
+      height: 1006
+    m_Scale: {x: 0.6194582, y: 0.61945814}
+    m_Translation: {x: 321.5, y: 503}
     m_MarginLeft: 0
     m_MarginRight: 0
     m_MarginTop: 0
     m_MarginBottom: 0
     m_LastShownAreaInsideMargins:
       serializedVersion: 2
-      x: -554.9119
+      x: -519.00195
       y: -812
-      width: 1109.8239
+      width: 1038.0039
       height: 1624
     m_MinimalGUI: 1
-  m_defaultScale: 0.5523399
-  m_LastWindowPixelSize: {x: 613, y: 918}
+  m_defaultScale: 0.61945814
+  m_LastWindowPixelSize: {x: 643, y: 1027}
   m_ClearInEditMode: 1
   m_NoCameraWarning: 1
   m_LowResolutionForAspectRatios: 01000000000000000000
@@ -1238,8 +1238,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 73
-    width: 573
-    height: 918
+    width: 603
+    height: 1027
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -1306,7 +1306,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: 0, y: 0}
+      snapOffset: {x: 0, y: 25}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 0
       id: unity-transform-toolbar
@@ -1332,7 +1332,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: 67.5, y: 0}
+      snapOffset: {x: 67.5, y: 25}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 0
       id: Orientation
@@ -1475,7 +1475,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 0
-      snapOffset: {x: 0, y: -137}
+      snapOffset: {x: 0, y: -172}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 2
       id: Scene View/Particles
@@ -1611,9 +1611,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: -1.4493706, y: 1.483019, z: -3.4068081}
+    m_Target: {x: 2.4300103, y: 0.13406138, z: -11.849117}
     speed: 2
-    m_Value: {x: -1.4493706, y: 1.483019, z: -3.4068081}
+    m_Value: {x: 2.4300103, y: 0.13406138, z: -11.849117}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -1654,18 +1654,18 @@ MonoBehaviour:
         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: 0, y: 0}
+      m_Size: {x: 1, y: 1}
     m_ShowGrid: 1
     m_GridAxis: 1
     m_gridOpacity: 0.5
   m_Rotation:
-    m_Target: {x: 0.10389518, y: 0.89454645, z: -0.33695513, w: 0.27513704}
+    m_Target: {x: -0.272953, y: -0.28468394, z: 0.08477399, w: -0.91518533}
     speed: 2
-    m_Value: {x: 0.10388237, y: 0.8944362, z: -0.33691362, w: 0.27510312}
+    m_Value: {x: -0.2729122, y: -0.28464139, z: 0.084761314, w: -0.91504854}
   m_Size:
-    m_Target: 4.038025
+    m_Target: 4.593231
     speed: 2
-    m_Value: 4.038025
+    m_Value: 4.593231
   m_Ortho:
     m_Target: 0
     speed: 2
@@ -1685,7 +1685,7 @@ MonoBehaviour:
     m_OcclusionCulling: 0
     m_EnableGDRP: 1
     m_BackfaceCulling: 0
-  m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0}
+  m_LastSceneViewRotation: {x: 0.013153511, y: -0.059692424, z: -0.0010107142, w: -0.99825275}
   m_LastSceneViewOrtho: 0
   m_ReplacementShader: {fileID: 0}
   m_ReplacementString: