protected override Vector3 KinematicProcess(float delta, Vector3 velocity, Vector3 rotationalVelocity) { var speed = velocity.Length(); var direction = velocity.Normalized(); if (speed > 0) { // if (Mathf.Abs(direction.z) > 0) // { var forward = direction.z <= 0; TreePlayer.TransitionNodeSetCurrent(DirectionTransition, forward ? TransitionForward : TransitionBackward); TreePlayer.Blend3NodeSetAmount(forward ? ForwardBlend : BackwardBlend, direction.x); // } // else // { // TreePlayer.TransitionNodeSetCurrent(DirectionTransition, TransitionStrafe); // TreePlayer.TransitionNodeSetCurrent(StrafeTransition, // direction.x < 0 ? TransitionLeft : TransitionRight); // } TreePlayer.TransitionNodeSetCurrent(MoveTransition, TransitionMove); TreePlayer.TimescaleNodeSetScale(ScaleSpeed, speed); } else { TreePlayer.TransitionNodeSetCurrent(MoveTransition, TransitionIdle); } return(_offset.origin / delta); }
protected virtual void ResetAnimations() { TreePlayer.TransitionNodeSetCurrent(MoveTransition, TransitionIdle); }