i-school - RotateTestクラス
ここではオブジェクトの回転についてテストを行います。
こちらのクラスと次のCubeControllerクラスの両方を扱って一連の動作を行うように設計されています。
まずはこちらのクラスを作成してください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// オブジェクトの回転テスト用クラス
/// </summary>
public class RotateTest : MonoBehaviour
{
    [Header("回転させる軸と回転させる回数")]
    public int x;
    public int y;
    public int z;

    /// <summary>
    /// Cubeを回転させる処理
    /// </summary>
    /// <param name="argumentEulerAngle">回転させる角度</param> 
    /// <param name="argumentAxis">回転させる軸</param>  
    /// <param name="isReverseFlag">正回転か逆回転かどうかのフラグ 基本はfalseで正回転</param> 
    public void RotateCube(float argumentEulerAngle, int argumentAxis, bool isReverseFlag = false) {
        // 回転させたい軸の情報をrotationPosに代入
        Quaternion rotationPos = transform.rotation;
        Debug.Log(transform.rotation);

        // 逆回転させるフラグがON(true)なら、回転させる向きを逆にする
        if (isReverseFlag) {
            argumentEulerAngle = -argumentEulerAngle;
            Debug.Log("Reverse");
        }
        // 回転させる軸を決める分岐 いずれかのcaseに入る
        // 軸ごとに回転した回数がカウントされる
        switch (argumentAxis) {
            case 0:  // x軸
                x++;
                rotationPos.x = argumentEulerAngle * x;
                break;
            case 1:  // y軸
                y++;
                rotationPos.y = argumentEulerAngle * y;
                break;
            case 2:  // z軸
                z++;
                rotationPos.z = argumentEulerAngle * z;
                break;
        }
        // 上記の分岐で決定した角度で回転させる
        // 分岐以外の2つの軸は元々の数値がそのまま再度入る
        transform.rotation = Quaternion.Euler(rotationPos.x, rotationPos.y, rotationPos.z);
        Debug.Log(transform.rotation);
    }

    /// <summary>
    /// Cubeの回転を初期状態に戻す処理
    /// </summary>
    public void ResetRotate() {
        // identityはゲーム開始時(生成時)の回転軸の情報の状態
        transform.rotation = Quaternion.identity;
        //transform.rotation = Quaternion.Euler(0,0,0);        
    }

    /// <summary>
    /// Cubeの各回転軸の回転回数を0に戻す処理
    /// </summary>
    /// <param name="argumentCount"></param>
    public void ResetAxisCount(int argumentCount) {
        x = argumentCount;
        y = argumentCount;
        z = argumentCount;
    }   
}

こちらのクラスをCubeオブジェクトにアタッチします。
このクラスには他のクラスのような、キー入力のメソッドはありません。
キー入力を別のクラス(CubeController)で管理し、こちらでは回転させる処理のみを行うようにしているためです。