Me tirado varios meses para poder hacer una puerta giratoria y no recordaba como lo hacia antes por un problema de descentrar el eje del gameobject y ponerlo en un extremo; y lo e resuelto de casualidad, unas imagenes valen mas que 1000 palabras, asi que sin comentarios, a partir de aqui es muy sencillo hacer una puerta giratoria, ni script necesita, el player pasa y la puerta gira desde un extremo, no necesita nada mas en absoluto.
SCRIPTS EN C# QUE UTILIZO PARA HABRIR Y CERRAR LAS PUERTAS MEDIANTE UNA ANIMACION REALIZADA CON 2 DE ELLAS, SON PUERTAS GIRATORIAS Y UTILIZO 4 PUERTAS CON ESTOS 3 SCRIPTS CONSIGO SU FUNCIONAMIENTO CUANDO EL PLAYER CRUZA POR ELLAS....ESTE PARA LAS PUERTAS GIRATORIAS UN ESCRIPT PARA LA DE LA IZQUIERDA Y EL MISMO PARA LA DE LA DERECHA ARRASTRANDOLAS A SU CORRESPONDIENTE CASILLA QUE FABRICA EL SCRIPT.
 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class activatTexto : MonoBehaviour
{
    public GameObject texto;
    private void OnTriggerEnter (Collider other)
    {
      if(other.tag == "Player")
        {
            texto.SetActive(true);
              
        }
    }
    private void OnTriggerExit(Collider other)
    {
        if (other.tag == "Player")
        {
            texto.SetActive(false);
        }
    }
}
-----------------------------------------------------------------------------------------------------------
ESTOS DOS PARA LAS PUERTAS CUANDO ESTAN CERRADAS.....
-------------------------------------------------------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BORRAPUERTASQUIETASALPASAR : MonoBehaviour
{
    public GameObject puertagiratoriadesdeblenderCINCO;
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            puertagiratoriadesdeblenderCINCO.SetActive(false);
        }
    }
    private void OnTriggerExit(Collider other)/////imbento
    { 
                if (other.tag == "Player")///////imbento
             
        {
                 
                        puertagiratoriadesdeblenderCINCO.SetActive(true);
               
        }
}
}
     
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BORRAPUERTASQUITASALPASARLASEIS : MonoBehaviour
{
    public GameObject puertagiratoriadesdeblenderSEIS;
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == "Player")
        {
            puertagiratoriadesdeblenderSEIS.SetActive(false);
        }
    }
    private void OnTriggerExit(Collider other)/////imbento
    {
        if (other.tag == "Player")///////imbento
        {
            puertagiratoriadesdeblenderSEIS.SetActive(true);
        }
    }
}




 
 









