// 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; } }