Browse Source

修改bug

DESKTOP-FB72PO8\Administrator 3 weeks ago
parent
commit
a7703fe382

+ 4 - 4
Assets/Art/HeroTimeLine/fb_wulonglunTimeline.playable

@@ -479,11 +479,11 @@ MonoBehaviour:
   m_Muted: 0
   m_CustomPlayableFullTypename: 
   m_Curves: {fileID: 0}
-  m_Parent: {fileID: 6066816933775845479}
+  m_Parent: {fileID: 11400000}
   m_Children: []
   m_Clips:
   - m_Version: 1
-    m_Start: 0
+    m_Start: 0.55
     m_ClipIn: 0
     m_Asset: {fileID: 6585205517704036416}
     m_Duration: 1
@@ -1874,6 +1874,7 @@ MonoBehaviour:
   - {fileID: -3132860492426191746}
   - {fileID: -2327424553049336028}
   - {fileID: -5875317742908195551}
+  - {fileID: -7544242966777951075}
   - {fileID: 6066816933775845479}
   m_FixedDuration: 0
   m_EditorSettings:
@@ -2756,8 +2757,7 @@ MonoBehaviour:
   m_CustomPlayableFullTypename: 
   m_Curves: {fileID: 0}
   m_Parent: {fileID: 11400000}
-  m_Children:
-  - {fileID: -7544242966777951075}
+  m_Children: []
   m_Clips: []
   m_Markers:
     m_Objects: []

+ 4 - 0
Assets/Scripts/GameLogic/Combat/CombatEvent/CombatEventType.cs

@@ -39,5 +39,9 @@
         /// </summary>
         ExercisesAlter,
         AddUseGongFa,
+        /// <summary>
+        /// 场景曲线改变
+        /// </summary>
+        SencenBesselPathAlter,
     }
 }

+ 48 - 3
Assets/Scripts/GameLogic/Combat/CombatTool/CombatCameraControllder.cs

@@ -27,18 +27,40 @@ namespace GameLogic.Combat.CombatTool
 
         public bool isStop;
 
+        private bool isUpdateCameraToPath;
+        private float currValue;
+        private float _cameraSelectValue;
+        private float targetValue;
+        private float _currTime;
+
         public void Init(CombatController combatController, Camera camera)
         {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.SencenBesselPathAlter, SencenBesselPathAlter);
             this.combatController = combatController;
             Camera = camera;
             root = Camera.transform.parent;
             StressReceiver = camera.transform.GetComponentInParent<StressReceiver>();
             TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
             EventManager.Instance.AddEventListener(CustomEventType.HeroClick, HeroClick);
-
+            CameraSelect_onValueChanged(0.7f);
             // EventManager.Instance.AddEventListener(CustomEventType.HeroClick, HeroClick);
         }
 
+        private void SencenBesselPathAlter(IEventData eventData)
+        {
+            isUpdateCameraToPath = true;
+            currValue = _cameraSelectValue;
+            if (CombatController.currActiveCombat.CombatSenceController.currBesselPath.isCentre)
+            {
+                targetValue = 0.5f;
+            }
+            else
+            {
+                targetValue = 0.7f;
+            }
+
+            _currTime = 0;
+        }
 
         protected void HeroClick(IEventData eventData)
         {
@@ -54,6 +76,19 @@ namespace GameLogic.Combat.CombatTool
             }
         }
 
+        public void CameraSelect_onValueChanged(float value)
+        {
+            _cameraSelectValue = value;
+            Vector3 pos1 = new Vector3(0, -2, -0.7f);
+            Vector3 e1 = new Vector3(20, 0, 0);
+            Vector3 pos2 = new Vector3(9, 0.7f, -1.4f);
+            Vector3 e2 = new Vector3(17.77f, -28.25f, 1.165f);
+            Camera.transform.localPosition =
+                Vector3.Lerp(pos1, pos2, value);
+            Camera.transform.localEulerAngles =
+                Vector3.Lerp(e1, e2, value);
+        }
+
         private void ShakeFinish()
         {
             isStartShake = false;
@@ -61,6 +96,16 @@ namespace GameLogic.Combat.CombatTool
 
         public void Update(float t)
         {
+            if (isUpdateCameraToPath)
+            {
+                _currTime += t;
+                CameraSelect_onValueChanged(Mathf.Lerp(currValue, targetValue, _currTime));
+                if (_currTime > 1)
+                {
+                    isUpdateCameraToPath = false;
+                }
+            }
+
             if (!isStartShake && !isStop)
             {
                 CombatHeroEntity combatHeroEntities = combatController.CombatHeroController.playerHeroEntity;
@@ -68,7 +113,7 @@ namespace GameLogic.Combat.CombatTool
                 {
                     return;
                 }
-                
+
                 Vector3 p = combatHeroEntities.GameObject.transform.TransformPoint(new Vector3(0, 8, -10));
                 root.rotation = Quaternion.Lerp(root.rotation, combatHeroEntities.GameObject.transform.rotation,
                     1);
@@ -83,7 +128,7 @@ namespace GameLogic.Combat.CombatTool
                 1);
             root.position = Vector3.Lerp(root.position, p, 1);
         }
-        
+
         public void Dispose()
         {
             EventManager.Instance.RemoveEventListener(CustomEventType.HeroClick, HeroClick);

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

@@ -93,6 +93,7 @@ namespace GameLogic.Combat.CombatTool
             RefreshFullEventData data = (RefreshFullEventData)eventData;
             _isFullUIShow = data.isFullShow;
         }
+    
 
 
         public void ChangeState(string name)

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatSenceController.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using Common.Utility.CombatEvent;
 using Core.Utility;
 using Fort23.Core;
 using Fort23.UTool;
@@ -30,6 +31,7 @@ namespace GameLogic.Combat.CombatTool
 
         private List<CombatSencePath> reclaimSence = new List<CombatSencePath>();
 
+
         public async CTask InitScenes()
         {
             GameObject gameObject = new GameObject("mvoeRoot");
@@ -172,6 +174,7 @@ namespace GameLogic.Combat.CombatTool
                 reclaimSence.Add(currBesselPath);
                 currBesselPath = NextBesselPath;
                 NextBesselPath = null;
+                CombatEventManager.Instance.Dispatch(CombatEventType.SencenBesselPathAlter, null);
             }
             else
             {

+ 1 - 1
Assets/Scripts/GameLogic/Combat/CombatTool/CombatSencePath.cs

@@ -12,7 +12,7 @@ namespace GameLogic.Combat.CombatTool
         public Vector3 a;
         public Vector3 b;
         private Vector3 Centre;
-        private bool isCentre;
+        public bool isCentre;
 
         public float reclaimTime;
 

+ 8 - 8
Assets/Scripts/GameLogic/Combat/CombatTool/MagicWeaponCollisionInfo.cs

@@ -105,10 +105,10 @@ namespace GameLogic.Combat.CombatTool
 
             _besselPathA.controlPoints.Add(b.GameObject.transform.TransformPoint(new Vector3(12.66f, 1, -5)));
             _besselPathA.controlPoints.Add(b.dotPos);
-            GameObject G = new GameObject("BesselPathMono11");
-            BesselPathMono besselPathMono = G.AddComponent<BesselPathMono>();
-            besselPathMono.isRun = true;
-            besselPathMono.BesselPath = _besselPathA;
+            // GameObject G = new GameObject("BesselPathMono11");
+            // BesselPathMono besselPathMono = G.AddComponent<BesselPathMono>();
+            // besselPathMono.isRun = true;
+            // besselPathMono.BesselPath = _besselPathA;
             _besselPathB = new BesselPath();
             _besselPathB.controlPoints.Add(b.dotPos);
             _besselPathB.controlPoints.Add(
@@ -117,10 +117,10 @@ namespace GameLogic.Combat.CombatTool
             _besselPathB.controlPoints.Add(
                 a.GameObject.transform.TransformPoint(new Vector3(12.67f, -3.03f, -3.5f)));
             _besselPathB.controlPoints.Add(a.dotPos);
-            GameObject G2 = new GameObject("BesselPathMono22");
-            BesselPathMono besselPathMono2 = G2.AddComponent<BesselPathMono>();
-            besselPathMono2.isRun = true;
-            besselPathMono2.BesselPath = _besselPathB;
+            // GameObject G2 = new GameObject("BesselPathMono22");
+            // BesselPathMono besselPathMono2 = G2.AddComponent<BesselPathMono>();
+            // besselPathMono2.isRun = true;
+            // besselPathMono2.BesselPath = _besselPathB;
         }
 
         protected void SetBesselB()

+ 67 - 11
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/XiaoShiAndShow.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Core.Utility;
 using UnityEngine;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
 
@@ -18,6 +19,10 @@ namespace GameLogic.Combat.Skill.MagicSkill
         protected bool isUpdateMove;
         protected float showSizeTime;
 
+        protected int state;
+
+        private BesselPath _besselPathA;
+
         protected override void ProInit()
         {
         }
@@ -25,9 +30,39 @@ namespace GameLogic.Combat.Skill.MagicSkill
         protected override void ProSetInfo()
         {
             isUpdateMove = false;
-            TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
-                _skillBasic.ActivationTimeLineData("sk1_xiaoshi");
-            timeLineEventLogicGroupBasic.TimeLineUpdateEnd = XiaoShiFinish;
+
+            int odds = UnityEngine.Random.Range(0, 100);
+
+            // if (odds < 1)
+            {
+                state = 0;
+                TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
+                    _skillBasic.ActivationTimeLineData("sk1_xiaoshi");
+                timeLineEventLogicGroupBasic.TimeLineUpdateEnd = XiaoShiFinish;
+            }
+            // else
+            // {
+            //     state = 1;
+            //     // Vector3 p1 =
+            //     //     _skillBasic.CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(-5f, 5f, 5f));
+            //     // Vector3 p2 = SetTargetPos2();
+            //     // _besselPathA.controlPoints.Add(_skillBasic.CombatHeroEntity.GameObject.transform.position);
+            //     // _besselPathA.controlPoints.Add(p1);
+            //     // _besselPathA.controlPoints.Add(p2);
+            //     // _besselPathA.controlPoints.Add(target.dotPos);
+            //     //
+            //     
+            //     _besselPathA = new BesselPath();
+            //     _besselPathA.controlPoints.Add(CombatHeroEntity.dotPos);
+            //     _besselPathA.controlPoints.Add(
+            //         CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(-5f, 5f, 5f)));
+            //
+            //     _besselPathA.controlPoints.Add(target.GameObject.transform.TransformPoint(new Vector3(-5f, 6f, 5f)));
+            //     Vector3 headPos = target.dotPos + new Vector3(0, 5, 0);
+            //     _besselPathA.controlPoints.Add(headPos);
+            //     currTime = 0;
+            //     isUpdateMove = true;
+            // }
         }
 
         private void XiaoShiFinish()
@@ -81,6 +116,7 @@ namespace GameLogic.Combat.Skill.MagicSkill
                 targetPos = target.dotPos;
                 currTime = 0;
                 isUpdateMove = true;
+                state = 3;
             }
         }
 
@@ -99,15 +135,35 @@ namespace GameLogic.Combat.Skill.MagicSkill
                 return;
             }
 
-            currTime += t * moveSpeed;
-            // Vector3 size = Vector3.Lerp(currSize, targetSize, currTime);
-            Vector3 pos = Vector3.Lerp(currPos, targetPos, currTime);
-            CombatHeroEntity.combatHeroGameObject.SetPosition(pos);
-            // CombatHeroEntity.combatHeroGameObject.SetScale(size);
-            if (currTime > 1)
+            if (state == 1)
             {
-                isUpdateMove = false;
-                AllFinish();
+                currTime += t * 0.5f;
+
+                Vector3 a1 = _besselPathA.CalculatePoint(currTime);
+                Vector3 a2 = _besselPathA.CalculatePoint(currTime - 0.01f);
+                CombatHeroEntity.combatHeroGameObject.SetPosition(a1);
+                CombatHeroEntity.GameObject.transform.rotation = Quaternion.LookRotation((a1 - a2).normalized);
+                if (currTime > 1)
+                {
+                    isUpdateMove = false;
+                    CombatHeroEntity.combatHeroGameObject.SetScale(new Vector3(3, 3, 3));
+                    CombatHeroEntity.GameObject.transform.eulerAngles =
+                        new Vector3(0, target.GameObject.transform.eulerAngles.y + 180, 0);
+                    ShowFinish();
+                }
+            }
+            else   if (state == 3)
+            {
+                currTime += t * moveSpeed;
+                // Vector3 size = Vector3.Lerp(currSize, targetSize, currTime);
+                Vector3 pos = Vector3.Lerp(currPos, targetPos, currTime);
+                CombatHeroEntity.combatHeroGameObject.SetPosition(pos);
+                // CombatHeroEntity.combatHeroGameObject.SetScale(size);
+                if (currTime > 1)
+                {
+                    isUpdateMove = false;
+                    AllFinish();
+                }
             }
         }
     }

+ 8 - 11
Assets/Scripts/GameUI/UI/CombatPanel/CombatPanel.cs

@@ -25,14 +25,12 @@ namespace Fort23.Mono
         protected override void AddEvent()
         {
             StaticUpdater.Instance.AddLateUpdateCallBack(Update);
-            
+            CameraSelect.value = 0.7f;
         }
 
-    
 
         protected override void DelEvent()
         {
-           
             StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
         }
 
@@ -49,14 +47,13 @@ namespace Fort23.Mono
 
         private void CameraSelect_onValueChanged(float value)
         {
-            Vector3 pos1 = new Vector3(0, -2, -0.7f);
-            Vector3 e1 = new Vector3(20, 0, 0);
-            Vector3 pos2 = new Vector3(9, 0.7f, -1.4f);
-            Vector3 e2 = new Vector3(17.77f, -28.25f, 1.165f);
-            CombatController.currActiveCombat.CombatCameraControllder.Camera.transform.localPosition =
-                Vector3.Lerp(pos1, pos2, value);
-            CombatController.currActiveCombat.CombatCameraControllder.Camera.transform.localEulerAngles =
-                Vector3.Lerp(e1, e2, value);
+            if (CombatController.currActiveCombat == null ||
+                CombatController.currActiveCombat.CombatCameraControllder == null)
+            {
+                return;
+            }
+
+            CombatController.currActiveCombat.CombatCameraControllder.CameraSelect_onValueChanged(value);
         }
 
         public void Update()