Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema al emparentar objetos a la cámara

Iniciado por Antonio Casas Rojas, Junio 29, 2018, 10:56:50 PM

Tema anterior - Siguiente tema
Muy buenas. Os describo el problema que estoy teniendo. Tengo un script que permite emparentar ciertos objetos del entorno del juego a la vista de cámara de mi personaje. El objeto emparentado se queda fijo en medio de la vista y puedo desplazarme con él facilmente. Sin embargo, el objeto se deforma (se estira en el eje Y) si miro arriba o abajo. Supongo que debe ser motivo de haber hecho hijo al objeto de la cámara y no se cómo arreglarlo. ¿Alguien podría ayudarme? Solo quisiera que el objeto que emparento con la cámara mantenga su escala original. Gracias y saludos.

Cita de: Antonio Casas Rojas date=1530305810¿Alguien podría ayudarme?
   


Sin script ta difícil ...

Cita de: lightbug date=1530312403Sin script ta difícil ...
   


Real

Cita de: lightbug date=1530312403Sin script ta difícil ...
   


Es verdad...xD. Lo siento. Aquí está:
 
 public GameObject cam;
 
public gameObject picable;
 
public float distancia 4f;
 
  void Start()

    {
 
    }
 
void  void Update(){
 
  if (Input.GetMouseButtonDown(0))

        {

            cogerObjeto();

        }
 
    }

    private void cogerObjeto()

    {

        Ray ray = Camera.main.ViewportPointToRay(Vector3.one * 0.5f);

        RaycastHit hitInfo;

        if (Physics.Raycast(ray, out hitInfo, distancia))

        {

            if (hitInfo.transform.CompareTag("objetoPicable"))

            {
 
                Debug.Log("Objeto Cogido");
 
                picable.transform.position = Vector3.Lerp(cam.transform.position, hitInfo.transform.position, 0.6f);
 
                picable.transform.SetParent(cam.transform);
 
}
 
}
 
}

Solo por si acaso, fíjate si tienes alguna escala diferente antes o después de cambiar el parent, a mí me pasa con los canvas cuando creo un botón por código, al hacer parent de un Transform (RectTransform en estos casos) me queda escalado, prueba con:
 

picable.transform.localScale = Vector3.one;

 
 

Junio 30, 2018, 04:16:10 PM #5 Ultima modificación: Junio 30, 2018, 04:17:07 PM por Antonio Casas Rojas
Cita de: juanma_teso date=1530363585Solo por si acaso, fíjate si tienes alguna escala diferente antes o después de cambiar el parent, a mí me pasa con los canvas cuando creo un botón por código, al hacer parent de un Transform (RectTransform en estos casos) me queda escalado, prueba con:
   
   

picable.transform.localScale = Vector3.one;

   
       
   


Buenas. El objeto picable ya tiene una escala de (1,1,1). lo creé con blender y apliqué esa escala antes de exportarlo a Unity. En Unity me aparece con la escala en 1 y al emparentarlo a la cámara cambia bruscamente su escala y más aún si subo o bajo la vista de la cámara. He probado a introducir la línea de código que me has escrito pero el objeto se sigue escalando cuando lo emparento a la cámara, pero en este caso su escala númerica curiosamente se mantiene en 1.
 

Cita de: Antonio Casas Rojas date=1530368170Buenas. El objeto picable ya tiene una escala de (1,1,1). lo creé con blender y apliqué esa escala antes de exportarlo a Unity.
   


No se si tiene algo que ver, igual no debería ser necesario.
 
del código no veo la parte que decis "si miro arriba o abajo". Revisaste el manual? : https://docs.unity3d.com/ScriptReference/Transform.SetParent.html


Cita de: juanma_teso date=1530372884Y la escala del FirstPersonCharacter??
   


Eso era. Gracias. Al final era más fácil de lo que pensaba. El padre de la cámara tenia una escala de (2,1,1) y no me había dado cuenta. Saludos.
 
 

Etiquetas: