Jelajahi Sumber

增加伞的消失动画,现在伞在回收前回升高到指定高度,防止boss看起来在水面下

HY-LSZNWIN10\Administrator 5 hari lalu
induk
melakukan
53f9fc68a0

+ 5 - 4
ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Braid.prefab

@@ -458,7 +458,7 @@ MonoBehaviour:
   - category: 4
     attacks:
     - attack: 1
-      weight: 3
+      weight: 2
     - attack: 3
       weight: 1
     - attack: 5
@@ -469,6 +469,7 @@ MonoBehaviour:
   attackCount: 0
   comboInterval: 0.5
   bodyFlickerTime: 1
+  bodyFlickerTimer: 0
   isDisappear: 0
   polliNum: 100
   pws: {fileID: 566765055176838525}
@@ -644,7 +645,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 16214313449006091}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -0.36, y: -2.71, z: 0}
+  m_LocalPosition: {x: -0.36, y: -0.53, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -1661,7 +1662,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 16214314734099186}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: -0.3600006, y: -2.71, z: 0}
+  m_LocalPosition: {x: -0.3600006, y: -0.83, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -1861,7 +1862,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2439495398494907273}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 0.15999937, y: 1.19, z: 0}
+  m_LocalPosition: {x: 0.15999937, y: 2.82, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []

+ 1 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/WaterSprite/Boss_Umbrella.prefab

@@ -10233,6 +10233,7 @@ MonoBehaviour:
   umbrellaOrigPos: {fileID: 0}
   umbrellaBackPos: {fileID: 0}
   owner: {fileID: 0}
+  ani: {fileID: 5733499163905850020}
   farFromPlayerDis: 15
   minTime: 3
   maxTime: 5

+ 84 - 55
ActionTowerDefense/Assets/Resources/Spine/Boss_umbrella_red/Boss_umbraller_SkeletonData_Controller.controller

@@ -1,34 +1,64 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1107 &-7122085332421805702
-AnimatorStateMachine:
+--- !u!1102 &-4342281287700009752
+AnimatorState:
   serializedVersion: 6
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: Base Layer
-  m_ChildStates:
-  - serializedVersion: 1
-    m_State: {fileID: 6508088595563211672}
-    m_Position: {x: 350, y: 70, z: 0}
-  m_ChildStateMachines: []
-  m_AnyStateTransitions: []
-  m_EntryTransitions: []
-  m_StateMachineTransitions: {}
+  m_Name: idle
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
   m_StateMachineBehaviours: []
-  m_AnyStatePosition: {x: 50, y: 20, z: 0}
-  m_EntryPosition: {x: 50, y: 120, z: 0}
-  m_ExitPosition: {x: 800, y: 120, z: 0}
-  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
-  m_DefaultState: {fileID: 6508088595563211672}
---- !u!74 &-3117138637065627286
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 6392903256146364688}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-4119941512263870686
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: disapear
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: -1906074080449743890}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &-1906074080449743890
 AnimationClip:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: disapear
   serializedVersion: 7
   m_Legacy: 0
   m_Compressed: 0
@@ -52,7 +82,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 1.3333334
+        time: 1
         value: 0
         inSlope: 0
         outSlope: 0
@@ -88,12 +118,12 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.3333334
+    m_StopTime: 1
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
     m_HasAdditiveReferencePose: 0
-    m_LoopTime: 1
+    m_LoopTime: 0
     m_LoopBlend: 0
     m_LoopBlendOrientation: 0
     m_LoopBlendPositionY: 0
@@ -117,7 +147,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 1.3333334
+        time: 1
         value: 0
         inSlope: 0
         outSlope: 0
@@ -148,7 +178,7 @@ AnimatorController:
   m_AnimatorLayers:
   - serializedVersion: 5
     m_Name: Base Layer
-    m_StateMachine: {fileID: -7122085332421805702}
+    m_StateMachine: {fileID: 5194280269617783896}
     m_Mask: {fileID: 0}
     m_Motions: []
     m_Behaviours: []
@@ -158,13 +188,38 @@ AnimatorController:
     m_IKPass: 0
     m_SyncedLayerAffectsTiming: 0
     m_Controller: {fileID: 9100000}
---- !u!74 &4369608762527255281
+--- !u!1107 &5194280269617783896
+AnimatorStateMachine:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Base Layer
+  m_ChildStates:
+  - serializedVersion: 1
+    m_State: {fileID: -4119941512263870686}
+    m_Position: {x: 270, y: 140, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -4342281287700009752}
+    m_Position: {x: 270, y: 80, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions: []
+  m_EntryTransitions: []
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 50, y: 20, z: 0}
+  m_EntryPosition: {x: 50, y: 120, z: 0}
+  m_ExitPosition: {x: 800, y: 120, z: 0}
+  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+  m_DefaultState: {fileID: -4342281287700009752}
+--- !u!74 &6392903256146364688
 AnimationClip:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: dive_end
+  m_Name: idle
   serializedVersion: 7
   m_Legacy: 0
   m_Compressed: 0
@@ -188,7 +243,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 4
+        time: 1.3333334
         value: 0
         inSlope: 0
         outSlope: 0
@@ -224,12 +279,12 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 4
+    m_StopTime: 1.3333334
     m_OrientationOffsetY: 0
     m_Level: 0
     m_CycleOffset: 0
     m_HasAdditiveReferencePose: 0
-    m_LoopTime: 0
+    m_LoopTime: 1
     m_LoopBlend: 0
     m_LoopBlendOrientation: 0
     m_LoopBlendPositionY: 0
@@ -253,7 +308,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 4
+        time: 1.3333334
         value: 0
         inSlope: 0
         outSlope: 0
@@ -272,29 +327,3 @@ AnimationClip:
   m_HasGenericRootTransform: 0
   m_HasMotionFloatCurves: 0
   m_Events: []
---- !u!1102 &6508088595563211672
-AnimatorState:
-  serializedVersion: 6
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: idle
-  m_Speed: 1
-  m_CycleOffset: 0
-  m_Transitions: []
-  m_StateMachineBehaviours: []
-  m_Position: {x: 50, y: 50, z: 0}
-  m_IKOnFeet: 0
-  m_WriteDefaultValues: 1
-  m_Mirror: 0
-  m_SpeedParameterActive: 0
-  m_MirrorParameterActive: 0
-  m_CycleOffsetParameterActive: 0
-  m_TimeParameterActive: 0
-  m_Motion: {fileID: -3117138637065627286}
-  m_Tag: 
-  m_SpeedParameter: 
-  m_MirrorParameter: 
-  m_CycleOffsetParameter: 
-  m_TimeParameter: 

+ 33 - 15
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/BlackUmbrella.cs

@@ -27,7 +27,7 @@ public class BlackUmbrella : MonoBehaviour
     public Transform owner;
     WaterSprite ws;
 
-    private Animator ani;
+    public Animator ani;
     private WaterSpriteAttackController attackCon;
 
     //Íæ¼Ò
@@ -70,17 +70,14 @@ public class BlackUmbrella : MonoBehaviour
     public UnityAction OnBack;
 
     public float leftBoundary, rightBoundary;
+    public float minimumHeight = 4f;
 
     private void Start()
     {
-        if (ani == null)
-        {
-            ani = GetComponent<Animator>();
-            ws = owner.GetComponent<WaterSprite>();
-            GetComponentInChildren<AttackTrigger>().owner = ws;
-            attackCon = owner.GetComponent<WaterSpriteAttackController>();
-            pc = PlayersInput.instance[0];
-        }
+        ws = owner.GetComponent<WaterSprite>();
+        GetComponentInChildren<AttackTrigger>().owner = ws;
+        attackCon = owner.GetComponent<WaterSpriteAttackController>();
+        pc = PlayersInput.instance[0];
     }
 
     //·Å³öÕâ¸ö¹¥»÷£¡
@@ -145,6 +142,11 @@ public class BlackUmbrella : MonoBehaviour
                 break;
             case UmbrellaState.back:
                 OnBack?.Invoke();
+                if(transform.position.y < 4)
+                {
+                    origPos = transform.position;
+                    aimPos = new Vector3(transform.position.x, 4, transform.position.z);
+                }
                 break;
             case UmbrellaState.disappear:
                 break;
@@ -181,14 +183,10 @@ public class BlackUmbrella : MonoBehaviour
                     umbrePastTime = 0;
                     ChangeUmbrellaState(UmbrellaState.sprint);
                 }
-                else if(umbrePastTime > stayTime)
-                {
-                    transform.position = aimPos;
-                }
-                else
+                else if(umbrePastTime < stayTime)
                 {
                     aimPos.y = pc.bodyTrans.position.y;
-                    transform.position = Vector3.MoveTowards(transform.position, aimPos, 9f * Time.deltaTime);                    
+                    transform.position = Vector3.MoveTowards(transform.position, aimPos, 9f * Time.deltaTime);
                 }
                 break;
             case UmbrellaState.back:
@@ -208,6 +206,14 @@ public class BlackUmbrella : MonoBehaviour
                 //    attackCon.isUmbrellaBack = true;
                 //    ws.isHoldingUmbre = true;
                 //}
+                if(transform.position.y < 4)
+                {
+                    //Debug.Log(umbrePastTime);
+                    float distanceCovered1 = umbrePastTime * initialSpeed;
+                    float fraction1 = distanceCovered1 / (4-transform.position.y);
+                    float dec1 = 1 - (1 - fraction1) * (1 - fraction1);
+                    transform.position = Vector3.Lerp(origPos, aimPos, umbrePastTime);
+                }
                 break;
             case UmbrellaState.disappear:
                 if (umbrePastTime >= disappearTime)
@@ -324,6 +330,18 @@ public class BlackUmbrella : MonoBehaviour
         }
     }
 
+    public void BeCleared()
+    {
+        ani.Play("disapear", 0, 0);
+        StartCoroutine(ClearDelay());
+    }
+
+    IEnumerator ClearDelay()
+    {
+        yield return new WaitForSeconds(2f);
+        gameObject.SetActive(false);
+    }
+
     private void Update()
     {
         OnUmbrellaState();

+ 0 - 1
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/HairSprint.cs

@@ -131,7 +131,6 @@ public class HairSprint : MonoBehaviour
         }
         else
         {
-            Debug.Log(111);
             int id = 0;
             foreach(Character c in aimCharacters)
             {

+ 3 - 4
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSprite.cs

@@ -48,7 +48,7 @@ public class WaterSprite : Boss
 
     [Header("˲Éí")]
     public float bodyFlickerTime;
-    private float bodyFlickerTimer;
+    [HideInInspector]public float bodyFlickerTimer;
     public bool isDisappear = false;
 
     [Header("ÒÆ¶¯")]
@@ -176,10 +176,9 @@ public class WaterSprite : Boss
 
     public override void ClearAllSkills()
     {
-        GameObject umbrella = attack.umbrellaInstance;
-        if (umbrella)
+        if (attack.blackUmbrella.gameObject.activeSelf)
         {
-            umbrella.SetActive(false);
+            attack.blackUmbrella.BeCleared();
             isHoldingUmbre = true;
         }
     }

+ 10 - 9
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSpriteAttackController.cs

@@ -75,20 +75,21 @@ public class WaterSpriteAttackController : AttackController
     public void TakeUmbre()
     {
         ws.ChangeState(CharacterState.Idle);
+        ws.isTakingUmbre = true;
+        ws.curInterval = 3f;
         if (ws.isDisappear)
         {
-            ws.curInterval = 1;
-            transform.position = blackUmbrella.transform.position - umbrellaBackPos.position + transform.position;
-            ws.EndCurAttackState(true);
-            ws.BodyFlickerAppear();
-            ws.ani.Play("shoot_end");
-            ws.isTakingUmbre = false;
-            ws.wsAttackController.blackUmbrella.BeTaken();
+            //ws.curInterval = 1;
+            //transform.position = blackUmbrella.transform.position - umbrellaBackPos.position + transform.position;
+            //ws.EndCurAttackState(true);
+            //ws.BodyFlickerAppear();
+            //ws.ani.Play("shoot_end");
+            //ws.isTakingUmbre = false;
+            //ws.wsAttackController.blackUmbrella.BeTaken();
+            ws. bodyFlickerTimer = Time.time;
         }
         else
         {
-            ws.isTakingUmbre = true;
-            ws.curInterval = 3f;
             ws.BodyFlickerDisappear();
         }
     }