summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Test
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Test')
-rw-r--r--Assets/Scripts/Test/ArmorSoldierScript.cs17
-rw-r--r--Assets/Scripts/Test/ArmorSoldierScript_States.cs23
-rw-r--r--Assets/Scripts/Test/SaionjiScript_States.cs10
3 files changed, 31 insertions, 19 deletions
diff --git a/Assets/Scripts/Test/ArmorSoldierScript.cs b/Assets/Scripts/Test/ArmorSoldierScript.cs
index dd4cd3e3..c86ca009 100644
--- a/Assets/Scripts/Test/ArmorSoldierScript.cs
+++ b/Assets/Scripts/Test/ArmorSoldierScript.cs
@@ -21,11 +21,18 @@ public partial class ArmorSoldierScript : Avatar, IInteractable
private void OnAnimatorMove()
{
- Animator animator = GetComponent<Animator>();
-
- // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果
- // 在后面做一个硬性约束z=0,将角色限制在z=0平面上
- if (animator)
+ Animator animator = GetComponent<Animator>();
+
+ AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
+
+ // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果
+ // 在后面做一个硬性约束z=0,将角色限制在z=0平面上
+ if (stateInfo.IsTag("IgnoreRootMotion"))
+ {
+ // ignore root motion
+ //Debug.Log("ignore root motion ");
+ }
+ else
{
Vector3 position = transform.position;
position.x += animator.deltaPosition.x;
diff --git a/Assets/Scripts/Test/ArmorSoldierScript_States.cs b/Assets/Scripts/Test/ArmorSoldierScript_States.cs
index 67eca581..07a4ce74 100644
--- a/Assets/Scripts/Test/ArmorSoldierScript_States.cs
+++ b/Assets/Scripts/Test/ArmorSoldierScript_States.cs
@@ -35,15 +35,20 @@ public partial class ArmorSoldierScript : Avatar, IInteractable
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ActionSwitchState switchToIdle = new ActionSwitchState(m_StateSystem, idle);
- Trigger trigger = null;
-
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // state setup
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- // air hurt
- ConditionMotionAtEnd airAtEnd = new ConditionMotionAtEnd(m_Animator, Anim_AirHurt);
+ Trigger trigger = null;
+
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // state setup
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ // light hurt
+ ConditionMotionAtEnd lightHurtAtEnd = new ConditionMotionAtEnd(m_Animator, Anim_LightHurt);
+ trigger = new Trigger(lightHurtAtEnd, switchToIdle);
+ lightHurt.AddTrigger(trigger);
+
+ // air hurt
+ ConditionMotionAtEnd airAtEnd = new ConditionMotionAtEnd(m_Animator, Anim_AirHurt);
trigger = new Trigger(And(airAtEnd, Not(condInAir)), switchToIdle);
airHurt.AddTrigger(trigger);
diff --git a/Assets/Scripts/Test/SaionjiScript_States.cs b/Assets/Scripts/Test/SaionjiScript_States.cs
index 68d09280..0176b976 100644
--- a/Assets/Scripts/Test/SaionjiScript_States.cs
+++ b/Assets/Scripts/Test/SaionjiScript_States.cs
@@ -44,10 +44,10 @@ public partial class SaionjiScript : Avatar
//招式会绑定一个motion
HitDefination hitDef = new HitDefination
- {
- type = HitType.Air,
- hurtAddForce = new Vector3(0, 10000, 0)
- };
+ {
+ type = HitType.Air,
+ hurtAddForce = new Vector3(0, 20000, 0)
+ };
AttackState attk1 = new AttackState(animator, Anim_LightAttack1, m_Body);
attk1.AddHitDefination(hitDef);
AttackState attk2 = new AttackState(animator, Anim_LightAttack2, m_Body);
@@ -79,7 +79,7 @@ public partial class SaionjiScript : Avatar
hitDef = new HitDefination
{
type = HitType.Air,
- hurtAddForce = new Vector3(0,5000,0)
+ hurtAddForce = new Vector3(0,10000,0)
};
airAttk1.AddHitDefination(hitDef);