Пример #1
0
    public static JumpBehavior CreateJumpBehavior(JumpType type, MonoBehaviour root)
    {
        JumpBehavior toReturn = null;

        switch (type)
        {
        case JumpType.Null:
            toReturn = new NullJump();
            break;

        case JumpType.Single:
            toReturn = new SingleJump(root.GetComponent <CharacterController>())
            {
                StartFallSpeed   = DEFAULT_START_FALL_SPEED,
                TerminalVelocity = DEFAULT_TERMINAL_VELOCITY,
                Gravity          = DEFAULT_GRAVITY,
                JumpForce        = DEFAULT_JUMP_FORCE
            };
            break;

        case JumpType.Double:
            toReturn = new DoubleJump(root.GetComponent <CharacterController>())
            {
                StartFallSpeed   = DEFAULT_START_FALL_SPEED,
                TerminalVelocity = DEFAULT_TERMINAL_VELOCITY,
                Gravity          = DEFAULT_GRAVITY,
                JumpForce        = DEFAULT_JUMP_FORCE
            };
            break;

        default:
            //Only thrown if a new jump type is added and there is no corresponding case.
            throw new NotImplementedException();
            break;
        }
        return(null);
    }
    public static JumpState CreateJumpState(JumpType type)
    {
        JumpState toReturn = null;

        switch (type)
        {
        case JumpType.Null:
            toReturn = new NullJump();
            break;

        case JumpType.Single:
            toReturn = new SingleJump(DEFAULT_TIME_HOLD)
            {
                StartFallSpeed   = DEFAULT_START_FALL_SPEED,
                TerminalVelocity = DEFAULT_TERMINAL_VELOCITY,
                Gravity          = DEFAULT_GRAVITY,
                JumpHeight       = DEFAULT_JUMP_FORCE
            };
            break;

        case JumpType.Double:
            toReturn = new DoubleJump()
            {
                StartFallSpeed   = DEFAULT_START_FALL_SPEED,
                TerminalVelocity = DEFAULT_TERMINAL_VELOCITY,
                Gravity          = DEFAULT_GRAVITY,
                JumpHeight       = DEFAULT_JUMP_FORCE
            };
            break;

        default:
            //Only thrown if a new jump type is added and there is no corresponding case.
            throw new NotImplementedException();
            break;
        }
        return(toReturn);
    }