Noticias

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

¿Cómo situar un objeto en una esquina de la cámara en cualquier relación de aspecto?

Iniciado por TheCodeMaker, Septiembre 04, 2017, 05:39:23 AM

Tema anterior - Siguiente tema
Me gustaría que el objeto siempre se mantuviera en la esquina inferior derecha en todas las relaciones de aspectos (16:9, 4:3...). Gracias.

Cita de: TheCodeMaker date=1504496363Me gustaría que el objeto siempre se mantuviera en la esquina inferior derecha en todas las relaciones de aspectos (16:9, 4:3...). Gracias.
   


Depende muchisimo de que es el objeto ya que en unity un elemento UI podria ser un objeto y la solucion seria diferente.
 
Si fuera un objeto 3d con un transform normal, primero tenes que tener en claro el lugar en pantalla donde queres que esté situado (independiente del Aspect, usa Screen width y Screen.height como referencias),ponele que te da en los pixels (X,Y). Luego debes pasarlos a coordenadas espaciales (X,Y) --> (x,y,z) , te va a dar pegado a la camara, luego alejarlo lo que lo tengas que alejar para que se vea bien, dependera del objeto.
 
Otra es usar un RawTexture con los anchors bien seteados (como un elemento UI cualquiera) y asignarle de textura un renderTarget, es decir lo que ve una camara aparte, dedicada a enfocar a este objeto. Si tenes los anchors bien el objeto se verá donde debe sin importar el aspect.
 
Y la mas logica de todas, si tu objeto es un elemento UI aprende a setear correctamente los anchors y listo, para decirlo directamente, ponelos en forma de "X" en la esquina de interes, si la esquina cambia el UI la sigue.

Gracias por la respuesta, al final lo he solucionado usando transform.position = Camera.main.ViewportToWorldPoint(new Vector3(1, 0, 1)) para situarlo en la esquina inferior derecha y cambiando el pivot del objeto para cuadrarlo bien.

Etiquetas: