Noticias

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

brujula usando Ui

Iniciado por ignacio, Febrero 19, 2016, 10:23:42 PM

Tema anterior - Siguiente tema
Febrero 19, 2016, 10:23:42 PM Ultima modificación: Febrero 20, 2016, 02:35:53 AM por ignacio
hola gente, saludos. Quiero hacer una brujula usando el sistema Ui  de momento tengo este codigo
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class buju: MonoBehaviour {
public Transform north;
public Transform compassPointer;

// Use this for initialization
void Start () {
   
}

// Update is called once per frame
void Update () {
   Vector3 targetPos = north.position - compassPointer.position;
   
   targetPos.y = 0;

   Quaternion targetRot = Quaternion.LookRotation(targetPos);
   
   compassPointer.rotation = Quaternion.Slerp(compassPointer.rotation,targetRot,Time.deltaTime * 2.0f);

}
}
esto funciona bien ya que siempre apunta al objetivo norte... pero aun no consigo el efecto de que la imagen que sera la brujula logre quedar como "acostada" , es decir inclinada sobre su eje x , ya que cuando le doy a play la brujula se orienta al objetivo north pero también modificara su rotacion en eje x 

mm por lo que estoy viendo la imagen sigue al objeto llamado north , pero si el personaje se mueve la imagen de la brújula no se moverá en dirección al objetivo..., este código se aplica bien en objetos planos es decir no Ui . Pero el problema de ello es que cuando el plano de la brújula llega a otro objeto , esta parece atravesar dicho objeto. ¿alguna idea de como podría solucionarse esto?

Febrero 20, 2016, 02:58:33 AM #2 Ultima modificación: Febrero 20, 2016, 04:27:56 AM por hammer
No acabo de entender el problema,supongo que es como una de verdad osea en "2D",  yo lo haria de la siguiente forma.Sacas el vector de direccion del personaje al objetivo y luego miras el angulo entre el vector forward del personaje,el vector hacia donde mire ,y el vector de direccion, y usas ese angulo para rotar la aguja de la brujula.Si te entendido mal pon algunas imagenes para que lo veamos mejor.Paz!!!  lml  lmlEdit:Bueno, he acabado y no me apetecia ir a dormir asi que me he hecho una, si marcas la opcion north te marcara el norte(he dado por hecho que el norte es +Z), si esta desactivada al objectivo que hayas puesto,en la escena el cuadrado, como ves no tengo encuenta el eje Y para que de igual la diferencia de alturaLo he hecho un poco a pelo en un first person, no he tocao los gui siempre he tirado de ngui,pero te tendria que servir igual,hechale un ojo y lo adaptas que sera un plis y sin tocar ninguna linea. Noches!!!!!
http://unityspain.com/applications/core/interface/file/attachment.php?id=9221">Compass.unitypackage

Etiquetas: