void SetAnimationState(int animationHash) { if (animator.GetCurrentAnimatorStateInfo(0).shortNameHash != animationHash) { animator.SetTrigger(animationHash); if (OnAnimationChange != null) { OnAnimationChange.Invoke(animationHash, Hand); } InvokeDataLoggers(); CurrentAnimationState = animationHash; } }
protected virtual void SetStart() { DeltaPosition = Vector3.zero; _RigidBody.isKinematic = false; //Some People set it as Kinematic and falling stop working (Just to make sure) Anim.updateMode = AnimatorUpdateMode.Normal; //Make Sure the Update Mode is on Normal Mode isInAir = false; scaleFactor = _transform.localScale.y; //TOTALLY SCALABE animal Double_Jump = 0; MovementReleased = true; SetPivots(); ActiveColliders = true; //All the Animal Colliders are Active on Start switch (StartSpeed) //Set Start Speed { case Ground.walk: Speed1 = true; break; case Ground.trot: Speed2 = true; break; case Ground.run: Speed3 = true; break; default: break; } Attack_Triggers = GetComponentsInChildren <AttackTrigger>(true).ToList(); //Save all Attack Triggers. OptionalAnimatorParameters(); //Enable Optional Animator Parameters on the Animator Controller; Start_Flying(); FrameCounter = UnityEngine.Random.Range(0, 10000); //Make every animal start on a diferent frame rate OnAnimationChange.AddListener(OnAnimationStateEnter); //Check everytime an animation state has change }