//Here for the Object Pooling public void InitializeVariables() { var componentAnimator = GetComponent <Animator>(); var componentCollider = GetComponent <Collider>(); var componentRigidBody = GetComponent <Rigidbody>(); _movementState = new StateMachine(); _actionState = new StateMachine(); _idle = new IdleState(componentAnimator, IdleAnimation); _grounded = new GroundedState(); _airborn = new AirbornState(componentCollider, componentRigidBody, 0, AirbornCallback); _death = new DeathState(componentAnimator, ExplosionAnimation, componentCollider, DeathCallback, PostMortermResult); _actionState.ChangeState(_idle); _movementState.ChangeState(_grounded); }
internal override void Awake() { base.Awake(); var playerAnimator = GetComponent <Animator>(); var playerRigidBody = GetComponent <Rigidbody>(); var playerCollider = GetComponent <Collider>(); Punch = new PunchState(playerAnimator, actorAnimations.ActorAttacking, DonePunching); Idle = new IdleState(playerAnimator, actorAnimations.ActorIdle); Grounded = new GroundedState(); Jump = new AirbornState(playerCollider, playerRigidBody, JumpSpeed, EvalJumpData); DiveKick = new DiveKickState(playerRigidBody, 20f, ActorLookingRight); Knockback = new KnockbackState(playerCollider, 5f, ActorLookingRight, EvalKnockbackResult); Proyectile = new ProyectileState(DoneProyectileAttack, actorAnimations.ActorProyectile, playerAnimator); actionState.ChangeState(Idle); movementState.ChangeState(Grounded); }