void SetStates() { //Check if character isOnAir if (groundCollidingFoot == 0) { if (aState != AnimatedState.OnAir) { aState = AnimatedState.OnAir; OnAir(); } onAirTimer += Time.deltaTime; } else if (aState == AnimatedState.OnAir) { aState = AnimatedState.Idle; onAirTimer = 0f; Grounded(); } if ((rootBone.velocity.magnitude > 2f) && (PlayerAppliedForce.magnitude > 0.1f) && (aState != AnimatedState.OnAir && aState != AnimatedState.Walking)) { aState = AnimatedState.Walking; } else if ((rootBone.velocity.magnitude < 2f) && (PlayerAppliedForce.magnitude < 0.1f) && (aState != AnimatedState.OnAir && aState != AnimatedState.Idle)) { aState = AnimatedState.Idle; } }
public override void OnActive() { if (!InitialState) { InitialState = IdleState; } ChangeState(InitialState); GetComponent <EventBus>().AddEventListener(LifeEntity.EventHit, () => { ChangeState(HitState); }); GetComponent <EventBus>().AddEventListener(LifeEntity.EventDeath, () => { ChangeState(DeadState); }); }