public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animal = animator.GetComponent <Animal>(); BehaviourSpeed = animal.flySpeed; if (Speed_Param != string.Empty) { SpeedHash = Animator.StringToHash(Speed_Param); animator.SetFloat(SpeedHash, AnimSpeedDefault); } CurrentSpeedMultiplier = AnimSpeedDefault; }
///───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── /// <summary> /// Add more Speed to the current Move animations /// </summary> protected virtual void AdditionalSpeed(float time) { currentSpeed = new Speeds(1); //Resets the Speeds IMPORTANT (BUG Catched by Jonathan MACK) if (hasUnderwater && underwater && CurrentAnimState == AnimTag.Underwater) { currentSpeed = underWaterSpeed; } else if (hasSwim && swim && CurrentAnimState == AnimTag.Swim) { currentSpeed = swimSpeed; //Change values to Swim } else if (hasFly && fly && CurrentAnimState == AnimTag.Fly) { currentSpeed = flySpeed; //Change values to Fly } else if (IsJumping || fall || CurrentAnimState == AnimTag.Fall) { currentSpeed = new Speeds(1); } else if (Speed3 || (Speed2 && Shift)) { currentSpeed = runSpeed; } else if (Speed2 || (Speed1 && Shift)) { currentSpeed = trotSpeed; } else if (Speed1) { currentSpeed = walkSpeed; } if (vertical < 0) { currentSpeed.position = walkSpeed.position; //If is going backwards use the WalkSpeed } currentSpeed.position = currentSpeed.position * ScaleFactor; Vector3 forward = T_Forward * vertical; if (forward.magnitude > 1) { forward.Normalize(); } DeltaPosition += forward * currentSpeed.position / 5f * time; Anim.speed = Mathf.Lerp(Anim.speed, currentSpeed.animator * animatorSpeed, time * currentSpeed.lerpAnimator); //Changue the velocity of the animator //Debug.Log("AnimSpeed: "+ Anim.speed + "| Lerp:" + currentSpeed.lerpAnimator + "| CurrentAnim:" + currentSpeed.animator); }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { rb = animator.GetComponent <Rigidbody>(); animal = animator.GetComponent <Animal>(); animator.applyRootMotion = true; transform = animator.transform; //Save the Transform on a local variable DeltaRotation = transform.rotation; //Save the Horizontal Rotation rb.constraints = RigidbodyConstraints.FreezeRotation; rb.useGravity = false; Default_UseShift = animal.useShift; animal.useShift = false; WaterLayer = LayerMask.GetMask("Water"); BehaviourSpeed = animal.underWaterSpeed; }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { ResetAllValues(); rb = animator.GetComponent <Rigidbody>(); animal = animator.GetComponent <Animal>(); animal.RootMotion = true; transform = animator.transform; //Save the Transform on a local variable rb.constraints = RigidbodyConstraints.FreezeRotation; rb.useGravity = false; Default_UseShift = animal.UseShift; animal.UseShift = false; WaterLayer = LayerMask.GetMask("Water"); Speed = animal.underWaterSpeed; }