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

修改伞的逻辑,飞行攻击改为横跨房间,捡伞时由伞自行飞往boss处,且boss转阶段时伞会飞往高处消失

HY-LSZNWIN10\Administrator 1 день тому
батько
коміт
6298e44b9a

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

@@ -10163,7 +10163,7 @@ MonoBehaviour:
   translator:
     autoReset: 1
     useCustomMixMode: 1
-    layerMixModes: 01000000
+    layerMixModes: 00000000
     layerBlendModes: 01000000
   updateTiming: 1
 --- !u!1 &5733499164336919437
@@ -10234,6 +10234,7 @@ MonoBehaviour:
   umbrellaBackPos: {fileID: 0}
   owner: {fileID: 0}
   ani: {fileID: 5733499163905850020}
+  rac: {fileID: 9100000, guid: 772474ffd67a6224c91edb90f4af4b00, type: 2}
   farFromPlayerDis: 15
   minTime: 3
   maxTime: 5
@@ -10241,6 +10242,7 @@ MonoBehaviour:
   appearTime: 0.005
   stayTime: 1.7
   attentionyTime: 0.3
+  backTime: 0.6
   disappearTime: 0.2
   effect: {fileID: 7473170563405908938, guid: 8d195dec6a5551844ba6e4a0a4af3b59, type: 3}
   initialTransparency: 0.2
@@ -10248,3 +10250,4 @@ MonoBehaviour:
   rightX: 9
   leftBoundary: 60
   rightBoundary: 120
+  maxHeight: 40

+ 8 - 0
ActionTowerDefense/Assets/Resources/Spine/Boss_umbrella.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ac229fd2e42a5b5438d65647b18b7f96
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 175 - 32
ActionTowerDefense/Assets/Resources/Spine/Boss_umbrella_red/Boss_umbraller_SkeletonData_Controller.controller

@@ -1,13 +1,13 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1102 &-4342281287700009752
+--- !u!1102 &-7812808937308082322
 AnimatorState:
   serializedVersion: 6
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: attack_start
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -20,13 +20,41 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 6392903256146364688}
+  m_Motion: {fileID: 1401668997693292445}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
---- !u!1102 &-4119941512263870686
+--- !u!1107 &-3105044793503899056
+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: -7812808937308082322}
+    m_Position: {x: 330, y: 280, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -1051288046619496798}
+    m_Position: {x: 350, y: 40, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 42219045737369636}
+    m_Position: {x: 320, y: 150, 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: 42219045737369636}
+--- !u!1102 &-1051288046619496798
 AnimatorState:
   serializedVersion: 6
   m_ObjectHideFlags: 1
@@ -46,13 +74,127 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: -1906074080449743890}
+  m_Motion: {fileID: -850569049795147126}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
   m_CycleOffsetParameter: 
   m_TimeParameter: 
---- !u!74 &-1906074080449743890
+--- !u!74 &-978669716386549402
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: idle
+  serializedVersion: 7
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.3333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings:
+    - serializedVersion: 2
+      path: 0
+      attribute: 2086281974
+      script: {fileID: 0}
+      typeID: 1
+      customType: 0
+      isPPtrCurve: 0
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.3333334
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 1
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves:
+  - curve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      - serializedVersion: 3
+        time: 1.3333334
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    attribute: m_IsActive
+    path: 
+    classID: 1
+    script: {fileID: 0}
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
+--- !u!74 &-850569049795147126
 AnimationClip:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -178,7 +320,7 @@ AnimatorController:
   m_AnimatorLayers:
   - serializedVersion: 5
     m_Name: Base Layer
-    m_StateMachine: {fileID: 5194280269617783896}
+    m_StateMachine: {fileID: -3105044793503899056}
     m_Mask: {fileID: 0}
     m_Motions: []
     m_Behaviours: []
@@ -188,38 +330,39 @@ AnimatorController:
     m_IKPass: 0
     m_SyncedLayerAffectsTiming: 0
     m_Controller: {fileID: 9100000}
---- !u!1107 &5194280269617783896
-AnimatorStateMachine:
+--- !u!1102 &42219045737369636
+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: -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_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: -4342281287700009752}
---- !u!74 &6392903256146364688
+  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: -978669716386549402}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!74 &1401668997693292445
 AnimationClip:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: attack_start
   serializedVersion: 7
   m_Legacy: 0
   m_Compressed: 0
@@ -243,7 +386,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 1.3333334
+        time: 2
         value: 0
         inSlope: 0
         outSlope: 0
@@ -279,12 +422,12 @@ AnimationClip:
     m_AdditiveReferencePoseClip: {fileID: 0}
     m_AdditiveReferencePoseTime: 0
     m_StartTime: 0
-    m_StopTime: 1.3333334
+    m_StopTime: 2
     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
@@ -308,7 +451,7 @@ AnimationClip:
         inWeight: 0.33333334
         outWeight: 0.33333334
       - serializedVersion: 3
-        time: 1.3333334
+        time: 2
         value: 0
         inSlope: 0
         outSlope: 0

+ 65 - 76
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/BlackUmbrella.cs

@@ -14,6 +14,7 @@ public class BlackUmbrella : MonoBehaviour
         stay,       //停在目标点
         back,       //收回
         disappear,  //消失前原地动画
+        flyAway,    
     }
 
     [DisplayOnly]
@@ -28,6 +29,7 @@ public class BlackUmbrella : MonoBehaviour
     WaterSprite ws;
 
     public Animator ani;
+    public RuntimeAnimatorController rac;
     private WaterSpriteAttackController attackCon;
 
     //玩家
@@ -52,9 +54,9 @@ public class BlackUmbrella : MonoBehaviour
     public float stayTime;
     [LabelText("黑伞冲刺前提示时长")]
     public float attentionyTime;
-    //[LabelText("黑伞收回时长")]
-    //public float backTime;
-    //private bool hasBackAni;
+    [LabelText("黑伞收回时长")]
+    public float backTime;
+    private bool hasBackAni;
     [LabelText("黑伞消失时长")]
     public float disappearTime;
     [LabelText("黑伞位置提示特效")]
@@ -70,7 +72,7 @@ public class BlackUmbrella : MonoBehaviour
     public UnityAction OnBack;
 
     public float leftBoundary, rightBoundary;
-    public float minimumHeight = 4f;
+    public float maxHeight;
 
     private void Start()
     {
@@ -78,6 +80,7 @@ public class BlackUmbrella : MonoBehaviour
         GetComponentInChildren<AttackTrigger>().owner = ws;
         attackCon = owner.GetComponent<WaterSpriteAttackController>();
         pc = PlayersInput.instance[0];
+        ani.runtimeAnimatorController = rac;
     }
 
     //放出这个攻击!
@@ -94,6 +97,7 @@ public class BlackUmbrella : MonoBehaviour
         {
             return;
         }
+        if(umbrellaState == UmbrellaState.stay) ani.Play("idle");
         umbrellaState = us;
         switch (us)
         {
@@ -104,52 +108,46 @@ public class BlackUmbrella : MonoBehaviour
             case UmbrellaState.sprint:
                 origPos = transform.position;
                 aimPos = pc.transform.position;
-                if (isFirst && aimPos.x < transform.position.x)
+                if (isFirst)
                 {
-                    aimPos = transform.position + new Vector3(1, 0, 0) * farFromPlayerDis;
-                    attackDis = farFromPlayerDis;
+                    aimPos = new Vector3(rightBoundary,transform.position.y,transform.position.z);
+                    attackDis = rightBoundary - transform.position.y;
                     isFirst = false;
                 }
                 else
                 {
                     aimPos.y = origPos.y;
-                    int fx = 1;
-                    if (aimPos.x < origPos.x)
+                    if (transform.position.x > leftBoundary)
                     {
-                        fx = -1;
+                        aimPos.x = leftBoundary;
                     }
-                    string dir = fx > 0 ? "右边" : "左边";
-                    Debug.Log("攻击方向为" + dir);
-                    aimPos.x += farFromPlayerDis * fx;
+                    else aimPos.x = rightBoundary;
                     attackDis = Mathf.Abs(aimPos.x - transform.position.x);
                 }
-                if (aimPos.x > rightBoundary)
-                {
-                    aimPos.x = rightBoundary;
-                }
-                else if (aimPos.x < leftBoundary)
-                {
-                    aimPos.x = leftBoundary;
-                }
                 break;
             case UmbrellaState.stay:
                 aimPos.y = pc.bodyTrans.position.y;
                 allTime--;
-                if (allTime < 0)
-                {
-                    ChangeUmbrellaState(UmbrellaState.back);
-                }
+                if (transform.position.x < rightBoundary) transform.localScale = new Vector3(1, 1, 1);
+                else transform.localScale = new Vector3(-1, 1, 1);
+                if (allTime >= 0) ani.Play("attack_start");
                 break;
             case UmbrellaState.back:
                 OnBack?.Invoke();
-                if(transform.position.y < 4)
-                {
-                    origPos = transform.position;
-                    aimPos = new Vector3(transform.position.x, 4, transform.position.z);
-                }
+                //if(transform.position.y < 4)
+                //{
+                //    origPos = transform.position;
+                //    aimPos = new Vector3(transform.position.x, 4, transform.position.z);
+                //}
+                umbrePastTime = 0f;
                 break;
             case UmbrellaState.disappear:
                 break;
+            case UmbrellaState.flyAway:
+                umbrePastTime = 0;
+                origPos = transform.position;
+                aimPos = new Vector3(transform.position.x, maxHeight, transform.position.z);
+                break;
         }
     }
 
@@ -178,7 +176,11 @@ public class BlackUmbrella : MonoBehaviour
                 }
                 break;
             case UmbrellaState.stay:
-                if (umbrePastTime > stayTime + attentionyTime)
+                if (allTime < 0)
+                {
+                    if(ws.state == CharacterState.Idle) ChangeUmbrellaState(UmbrellaState.back);
+                }
+                else if (umbrePastTime > stayTime + attentionyTime)
                 {
                     umbrePastTime = 0;
                     ChangeUmbrellaState(UmbrellaState.sprint);
@@ -190,30 +192,30 @@ public class BlackUmbrella : MonoBehaviour
                 }
                 break;
             case UmbrellaState.back:
-                //float t2 = Mathf.Clamp01(umbrePastTime / backTime);
-                //float smoothT2 = Mathf.SmoothStep(0, 1, t2);
-                //transform.position = Vector3.Lerp(aimPos, umbrellaBackPos.position, smoothT2);
-                //if (umbrePastTime >= backTime)
-                //{
-                //    umbrePastTime = 0;
-                //    hasBackAni = false;
-                //    ws.isHoldingUmbre = true;
-                //    ChangeUmbrellaState(UmbrellaState.disappear);
-                //}
-                //else if (!hasBackAni && umbrePastTime >= backTime - 0.6f)
-                //{
-                //    hasBackAni = true;
-                //    attackCon.isUmbrellaBack = true;
-                //    ws.isHoldingUmbre = true;
-                //}
-                if(transform.position.y < 4)
+                float t2 = Mathf.Clamp01(umbrePastTime / backTime);
+                float smoothT2 = Mathf.SmoothStep(0, 1, t2);
+                transform.position = Vector3.Lerp(transform.position, umbrellaBackPos.position, smoothT2);
+                if (umbrePastTime >= backTime)
                 {
-                    //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);
+                    umbrePastTime = 0;
+                    hasBackAni = false;
+                    ws.isHoldingUmbre = true;
+                    ChangeUmbrellaState(UmbrellaState.disappear);
                 }
+                else if (!hasBackAni && umbrePastTime >= backTime - 0.6f)
+                {
+                    hasBackAni = true;
+                    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)
@@ -223,22 +225,17 @@ public class BlackUmbrella : MonoBehaviour
                     gameObject.SetActive(false);
                 }
                 break;
+            case UmbrellaState.flyAway:
+                transform.position = Vector3.Lerp(origPos, aimPos, umbrePastTime);
+                if(Vector3.Distance(transform.position,aimPos) < 1)
+                {
+                    gameObject.SetActive(false);
+                    ws.isHoldingUmbre = true;
+                }
+                break;
         }
     }
 
-    public void BeTaken()
-    {
-        StartCoroutine(Disappear());
-    }
-
-    IEnumerator Disappear()
-    {
-        yield return new WaitForSeconds(0.6f);
-        umbrePastTime = 0;
-        attackCon.isUmbrellaBack = true;
-        ws.isHoldingUmbre = true;
-        ChangeUmbrellaState(UmbrellaState.disappear);
-    }
     private bool IsTargetVisible(GameObject target)
     {
         Camera camera = Camera.main;
@@ -272,10 +269,9 @@ public class BlackUmbrella : MonoBehaviour
         //               && (stayTime - umbrePastTime) <= 1f;
 
         bool isAboutToAttack = umbrellaState == UmbrellaState.stay
-               && allTime > -1
                && (umbrePastTime - stayTime)> 0;
 
-        if (!IsTargetVisible(gameObject) && umbrellaState == UmbrellaState.stay)
+        if (!IsTargetVisible(gameObject) && umbrellaState == UmbrellaState.stay && allTime > -1)
         {
             if (isAboutToAttack)
             {
@@ -332,14 +328,7 @@ public class BlackUmbrella : MonoBehaviour
 
     public void BeCleared()
     {
-        ani.Play("disapear", 0, 0);
-        StartCoroutine(ClearDelay());
-    }
-
-    IEnumerator ClearDelay()
-    {
-        yield return new WaitForSeconds(2f);
-        gameObject.SetActive(false);
+        ChangeUmbrellaState(UmbrellaState.flyAway);
     }
 
     private void Update()

+ 15 - 16
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSprite.cs

@@ -76,7 +76,6 @@ public class WaterSprite : Boss
     [FoldoutGroup("״̬Ìáʾ")] public bool isAngry = false;
     [FoldoutGroup("״̬Ìáʾ")] public bool isTakingUmbre = false;
     [FoldoutGroup("״̬Ìáʾ")] public bool isHoldingUmbre = true;
-    private Coroutine attackCoroutine;
 
     public override void Init()
     {
@@ -253,21 +252,21 @@ public class WaterSprite : Boss
             case CharacterState.Idle:
                 if (isTakingUmbre)
                 {
-                    if (Time.time - bodyFlickerTimer > bodyFlickerTime && isDisappear)
-                    {
-                        curInterval = 1;
-                        transform.position = wsAttackController.blackUmbrella.transform.position - wsAttackController.umbrellaBackPos.position + transform.position;
-                        EndCurAttackState(true);
-                        BodyFlickerAppear();
-                        ani.Play("shoot_end");
-                        isTakingUmbre = false;
-                        wsAttackController.blackUmbrella.BeTaken();
-                    }
-                    else if (spineEvent.isAttackOn)
-                    {
-                        spineEvent.isAttackOn = false;
-                        BodyFlickerDisappear();
-                    }
+                    //if (Time.time - bodyFlickerTimer > bodyFlickerTime && isDisappear)
+                    //{
+                    //    curInterval = 1;
+                    //    transform.position = wsAttackController.blackUmbrella.transform.position - wsAttackController.umbrellaBackPos.position + transform.position;
+                    //    EndCurAttackState(true);
+                    //    BodyFlickerAppear();
+                    //    ani.Play("shoot_end");
+                    //    isTakingUmbre = false;
+                    //    wsAttackController.blackUmbrella.BeTaken();
+                    //}
+                    //else if (spineEvent.isAttackOn)
+                    //{
+                    //    spineEvent.isAttackOn = false;
+                    //    BodyFlickerDisappear();
+                    //}
                     return;
                 }
 

+ 17 - 17
ActionTowerDefense/Assets/Scripts/Boss/WaterGhost/WaterSpriteAttackController.cs

@@ -74,24 +74,24 @@ public class WaterSpriteAttackController : AttackController
 
     public void TakeUmbre()
     {
-        ws.ChangeState(CharacterState.Idle);
-        ws.isTakingUmbre = true;
+        ws.isTakingUmbre = false;
         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. bodyFlickerTimer = Time.time;
-        }
-        else
-        {
-            ws.BodyFlickerDisappear();
-        }
+        ws.ani.Play("shoot_end", 0, 0);
+        //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. bodyFlickerTimer = Time.time;
+        //}
+        //else
+        //{
+        //    ws.BodyFlickerDisappear();
+        //}
     }
 
     //±è×ӺݺݴÁ