Ejemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (roulatte_state == BOADSTATE.STOP)
            {
                roulatte_state = BOADSTATE.MOVE;
            }
            else
            {
                roulatte_state++;
            }
        }
        if (Input.GetMouseButtonDown(1))
        {
            roulatte_state = BOADSTATE.STOP;
        }


        switch (roulatte_state)
        {
        case BOADSTATE.MOVE:
            this.rotSpeed = 10;
            break;

        case BOADSTATE.BRAKE:
            this.rotSpeed *= 0.96f;
            if (rotSpeed < 0.01)
            {
                roulatte_state = BOADSTATE.STOP;
            }
            break;

        case BOADSTATE.STOP:
            this.rotSpeed = 0;
            break;

        default:
            this.rotSpeed = 0;
            Debug.Log("ERROR:ルーレットの状態にエラーが出ました。");
            break;
        }

        transform.Rotate(0, 0, this.rotSpeed);
    }
    // Update is called once per frame
    void Update()
    {
        // 強制停止
        if (Input.GetMouseButtonDown(1))
        {
            roulatte_state = BOADSTATE.STOP;
        }

        BOADSTATE s;
        bool      left_click = Input.GetMouseButtonDown(0);

UPDATE_STATE:
        switch (roulatte_state)
        {
        case BOADSTATE.STOP:
            s = UpdateStop(left_click);
            break;

        case BOADSTATE.MOVE:
            s = UpdateMove(left_click);
            break;

        case BOADSTATE.BRAKE:
            s = UpdateBreak(left_click);
            break;

        default:
            Debug.Log("ERROR:ルーレットの状態にエラーが出ました。");
            break;
        }

        // 状態が変わったら、次の状態の処理を一度回す
        if (s != roulatte_state)
        {
            roulatte_state = s;
            left_click     = false;
            goto UPDATE_STATE;
        }
    }