Ejemplo n.º 1
0
    //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);
    }
Ejemplo n.º 2
0
    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);
    }