summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Test
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Test')
-rw-r--r--Assets/Scripts/Test/SaionjiScript.cs17
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Ability.cs42
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Anim.cs11
-rw-r--r--Assets/Scripts/Test/SaionjiScript_Physics.cs1
4 files changed, 58 insertions, 13 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript.cs b/Assets/Scripts/Test/SaionjiScript.cs
index 7fac11f3..03dfbf8d 100644
--- a/Assets/Scripts/Test/SaionjiScript.cs
+++ b/Assets/Scripts/Test/SaionjiScript.cs
@@ -49,11 +49,20 @@ public partial class SaionjiScript : MonoBehaviour, IInteractable
void OnAnimatorMove()
{
Animator animator = GetComponent<Animator>();
-
- // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果
- // 在后面做一个硬性约束z=0,将角色限制在z=0平面上
- if (animator)
+ if (animator == null)
+ return;
+
+ AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
+
+ if(stateInfo.IsTag("IgnoreRootMotion"))
+ {
+ // ignore root motion
+ Debug.Log("ignore root motion ");
+ }
+ else
{
+ // animator.deltaPosition和animator.deltaRotation是animator做的root motion后的结果
+ // 在后面做一个硬性约束z=0,将角色限制在z=0平面上
Vector3 position = transform.position;
position.x += animator.deltaPosition.x;
position.y += animator.deltaPosition.y;
diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs
index 21901096..c3fa94ce 100644
--- a/Assets/Scripts/Test/SaionjiScript_Ability.cs
+++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs
@@ -37,6 +37,19 @@ public partial class SaionjiScript : MonoBehaviour
MoveAbility move = new MoveAbility(animator, Anim_Run);
MoveAbility dash = new MoveAbility(animator, Anim_DashWithSword);
+ JumpAbilityConfig jumpConfig = new JumpAbilityConfig();
+ jumpConfig.animator = animator;
+ jumpConfig.collider = m_BodyCollider;
+ jumpConfig.body = m_Body;
+ jumpConfig.neutralJumpSpeedY = 10f;
+ jumpConfig.fowardJumpSpeedX = 1f;
+ jumpConfig.backwardJumpSpeedX = -1f;
+ jumpConfig.animJump = Anim_JumpStart;
+ jumpConfig.animJumpEnd = Anim_JumpEnd;
+ jumpConfig.animNU = Anim_JumpUp;
+ jumpConfig.animND = Anim_JumpDown;
+ JumpAbility jump = new JumpAbility(jumpConfig);
+
AttackAbilityConfig config;
//招式会绑定一个motion
@@ -69,6 +82,8 @@ public partial class SaionjiScript : MonoBehaviour
ActionTowardLeft towardLeft = new ActionTowardLeft(this.transform);
ActionTowardRight towardRight = new ActionTowardRight(this.transform);
+ ActionJump toJump = new ActionJump(m_AbilitySystem, jump);
+
ActionSwitchAbility switchToMove = new ActionSwitchAbility(m_AbilitySystem, move);
ActionSwitchAbility switchToIdle = new ActionSwitchAbility(m_AbilitySystem, idle);
ActionSwitchAbility switchToAttk1 = new ActionSwitchAbility(m_AbilitySystem, attk1);
@@ -99,8 +114,9 @@ public partial class SaionjiScript : MonoBehaviour
ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold();
ConditionButtonHold condRightButtonHold = new ConditionButtonHold(GamepadButton.Right);
ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left);
+ ConditionCommand condTriangleCmd = new ConditionCommand(GamepadButton.Triangle);
ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle);
- ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross);
+ ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross);
ConditionCommand condSquareCmd = new ConditionCommand(GamepadButton.Square);
ConditionTowardLeft condTowardLeft = new ConditionTowardLeft(this.transform);
ConditionTowardRight condTowardRight = new ConditionTowardRight(this.transform);
@@ -111,19 +127,23 @@ public partial class SaionjiScript : MonoBehaviour
ConditionHit condIsHit = new ConditionHit(this);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // common triggers
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight);
+ ConditionJumpDone condJumpDone = new ConditionJumpDone(jump);
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // common triggers
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight);
Trigger triggerTurnLeft = new Trigger(And(condLeftCmd, Not(condTowardLeft)), towardLeft);
Trigger trigger = null;
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // ability setup
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // ability setup
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // idle ability
+ // idle ability
+ trigger = new Trigger(condTriangleCmd, toJump) ;
+ idle.AddTrigger(trigger);
trigger = new Trigger(And(condTowardRight, condDRC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick });
idle.AddTrigger(trigger);
trigger = new Trigger(And(condTowardLeft, condDLC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick });
@@ -167,6 +187,10 @@ public partial class SaionjiScript : MonoBehaviour
trigger = new Trigger(condCrossCmd, switchToSideKick);
move.AddTrigger(trigger);
+ // jump ability
+ trigger = new Trigger(condJumpDone, switchToIdle);
+ jump.AddTrigger(trigger);
+
// dash ability
trigger = new Trigger(And(new ConditionMotionRange(animator, 0.5f, 1.0f), condCircleCmd), switchToAttk1);
dash.AddTrigger(trigger);
diff --git a/Assets/Scripts/Test/SaionjiScript_Anim.cs b/Assets/Scripts/Test/SaionjiScript_Anim.cs
index 082729f7..5dec9db6 100644
--- a/Assets/Scripts/Test/SaionjiScript_Anim.cs
+++ b/Assets/Scripts/Test/SaionjiScript_Anim.cs
@@ -22,6 +22,11 @@ public partial class SaionjiScript : MonoBehaviour
int Anim_Gun3;
int Anim_Gun4;
+ int Anim_JumpStart;
+ int Anim_JumpUp;
+ int Anim_JumpDown;
+ int Anim_JumpEnd;
+
void GetAnimHash()
{
//Anim_Idle = Animator.StringToHash("Idle_Gun");
@@ -46,6 +51,12 @@ public partial class SaionjiScript : MonoBehaviour
Anim_Gun2 = Animator.StringToHash("Gun02");
Anim_Gun3 = Animator.StringToHash("Gun03");
Anim_Gun4 = Animator.StringToHash("Gun04");
+
+
+ Anim_JumpStart = Animator.StringToHash("Jump_Start");
+ Anim_JumpUp = Animator.StringToHash("Jump_Up");
+ Anim_JumpDown = Animator.StringToHash("Jump_Down");
+ Anim_JumpEnd = Animator.StringToHash("Jump_End");
}
}
diff --git a/Assets/Scripts/Test/SaionjiScript_Physics.cs b/Assets/Scripts/Test/SaionjiScript_Physics.cs
index 99926afe..1b296f43 100644
--- a/Assets/Scripts/Test/SaionjiScript_Physics.cs
+++ b/Assets/Scripts/Test/SaionjiScript_Physics.cs
@@ -7,6 +7,7 @@ public partial class SaionjiScript : MonoBehaviour, IInteractable
public PhysicsBox[] m_Hitbox;
public PhysicsBox[] m_Hurtbox;
public PhysicsBody m_Body;
+ public PhysicsBox m_BodyCollider;
public PhysicsPrimitive[] GetAllPrimitive()
{