Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: ignacio en Febrero 19, 2016, 10:23:42 PM

Título: brujula usando Ui
Publicado por: ignacio en Febrero 19, 2016, 10:23:42 PM
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 
Título: brujula usando Ui
Publicado por: ignacio en Febrero 20, 2016, 02:40:25 AM
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?
Título: brujula usando Ui
Publicado por: hammer en Febrero 20, 2016, 02:58:33 AM
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!!!!!
Compass.unitypackage