How to slowly rotate a gameObject from 0 to -90f and vice versa every 5 seconds?

Hi! I have this object in my game and I want it to rotate every 5 seconds, opening and closing the street. In order to do that, I need it to rotate in the X axis from 0 degrees (closed) to -90 degrees (open).

Currently this is the code I’m using:

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

public class GuaritaRotation : MonoBehaviour
{
    public int waitTime;
    float angle = 90f;

    void Start()
    {
        StartCoroutine(Coroutine());
     }

    IEnumerator Coroutine()
    {
        while (true)
        {
            if (angle == 90f)
            {
                angle = -90f;
            }
            else if(angle == -90f)
            {
                angle = 90f;
            }
            transform.Rotate(angle, 0.0f, 0f);
            yield return new WaitForSeconds(waitTime); 
        }
    }
}

It works but the object goes directly from 0 to -90 and I’d like it to slowly rotate from one angle to another. I’m having some troubles discovering how to make that, so any help is appreciated!

Hey @Feliperpv , Take look at Here

In general what you need is lerping the rotation to desire rotation ,
so replace your code to this :

transform.rotation = Quaternion.Lerp (transform.rotation, new Quaternion.Euler(angle, transform.rotation.y, tramsform.rotation.z), Time.deltaTime * speed);

Note : The speed parametr controll the speed of lerping.
Hope this help
Best regards Fariborz