rotate objects with keys

Hello friends!

I want to ask!
I have a game project, now when I run the game, there is one object if I press space then the object will rotate y, but if I don’t press space, the rotation of the object will return to its original state.

Please answer!
I really need the script.
Thanks for reading…

I like the answer of @DCordoba - here just another solution I came up with. Good night :slight_smile:

using System;
using UnityEngine;

public class RotateAndBack : MonoBehaviour {
    [SerializeField] RotationAxis _rotationAxis;
    [SerializeField, Range(1, 360)] float _degreePerSecond = 10f;

    Transform _transform;
    Quaternion _defaultRotation;
    float _degreesRotated;

    void Start() {
        _transform = transform;
        _defaultRotation = _transform.rotation;

    void Update() {
        if (Input.GetKey(KeyCode.Space)) DoRotate(_degreePerSecond);
        else if (_degreesRotated > 0) DoRotate(-_degreePerSecond);
        else if (_degreesRotated != 0) {
            _degreesRotated = 0;
            _transform.rotation = _defaultRotation;

    void DoRotate(float degrees) {
        var rotAxis = ByRotationAxisEnumValue(_rotationAxis);
        var timedDegree = degrees * Time.deltaTime;

        _transform.Rotate(rotAxis, timedDegree);

        _degreesRotated += timedDegree;
        _degreesRotated %= 360f;

    enum RotationAxis {

    Vector3 ByRotationAxisEnumValue(RotationAxis rotationAxis) {
        switch (rotationAxis) {
            case RotationAxis.AROUND_POS_X_AXIS: return Vector3.right;
            case RotationAxis.AROUND_POS_Y_AXIS: return Vector3.up;
            case RotationAxis.AROUND_POS_Z_AXIS: return Vector3.forward;
            case RotationAxis.AROUND_NEG_X_AXIS: return Vector3.left;
            case RotationAxis.AROUND_NEG_Y_AXIS: return Vector3.down;
            case RotationAxis.AROUND_NEG_Z_AXIS: return Vector3.back;
            default: throw new Exception("UNKNOWN RotationAxis");