Noticias

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

UI

Iniciado por isai, Marzo 21, 2016, 03:29:14 AM

Tema anterior - Siguiente tema
bueno aqui otra vez con un problema, explico lo que intento hacer, quiero que en la UI se muestren unos iconos los cuales se moveran de acuerdo a la posicion de unos gameobjects en la escena, todo funciona bien pero cuando esos gameobjects se ubican detras de la camara su posicion se refleja de manera invertida es decir si estan en la izquierda el icono se muestra en la derecha, no se si alguien tenga una idea de a que puede deberse, lo que hice para que estos se muevan fue el WorldToScreenPoint y a esa posicion muevo el icono

Postea aquí el código que usas para esa UI y lo veremos...

if (Vector3.Distance (transform.position, playersRace ._GetRacer ()._car.transform.position) < 20) {
      x = Camera.main.WorldToScreenPoint (playersRace ._GetRacer ()._car.transform.position);
      x = new Vector3(x.x, HudItems.Icons .transform.position.y, HudItems.Icons .transform.position.z);
      if (x.x > HudItems.LI.transform.position.x && x.x < HudItems.LD.transform.position.x) {
         HudItems.Icons .transform.position = x;
      }
   }

Bufff no sabría por dónde tirar.... yo probaría a hacer un else a ver si entra cuando está detrás de la cámara (que no creo, pero por si acaso) y también un Debug del primer X, tal vez al estar la posición detrás de la cámara de un vector no esperado.

bueno no e hallado el porque sucede esto, no se si sera por el WorldToScreenPoint que invierte la posicion al pasarla a la pantalla

ya encontre la solucion y el porque, es porque la pantalla screen y la camara usan coordenadas inversas segun lo que vi en un foro por lo que 0,0 de la camara es abajo-izquierda y en la screen es arriba-izquierdalo que hice para resolver el problema fue restarle el screen.width a la posicion en x del vector x
x = new Vector3(Screen.width - x.x, HudItems.Icons .transform.position.y, HudItems.Icons .transform.position.z);
por lo que asi quedo el resultado, espero me haya explicado y les sea de ayuda

Etiquetas: