예제 #1
0
    void Awake()
    {
        jumpMachine = new BehaviourStateMachine <IJump, JumpStates>(new Dictionary <JumpStates, IBehaviourState <IJump, JumpStates> >
        {
            { JumpStates.OnGround, new OnGroundState() },
            { JumpStates.Jump, new JumpState() },
            { JumpStates.AirTime, new AirTimeState() },
            { JumpStates.Falling, new FallingState() }
        }, this);

        jumpMachine.ChangeState(JumpStates.OnGround);

        rigidbody = gameObject.GetComponent <Rigidbody>();
    }
예제 #2
0
    void Awake()
    {
        movementMachine = new BehaviourStateMachine <IMove, MovementState>(new Dictionary <MovementState, IBehaviourState <IMove, MovementState> >
        {
            { MovementState.NotMoving, new NotMovingState() },
            { MovementState.Acceleration, new AccelerationState() },
            { MovementState.MaxSpeed, new MaxSpeedState() },
            { MovementState.Deacceleration, new DeaccelerationState() }
        }, this);

        movementMachine.ChangeState(MovementState.NotMoving);

        m_rigidBody = gameObject.GetComponent <Rigidbody>();
    }