domingo, 9 de octubre de 2022

Como cambiar el eje de un gameobject con Unity 2022.1.12f1 con el Pivot y con Center; Para hacer una puerta giratoria; C#;

 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);


        }
    }
}