Usuario completo
Matemáticas Unity solucionado
Buenas tardes, estoy intentando programar un detalle para la cámara y se trata básicamente de que al dejar de movernos, si no tocamos ninguna tecla la cámara se reposicione justo detras del personaje.
Esto se consigue con transform.RotateAround, un comando de Unity que hace que un objeto pueda girar alrededor de otro y que pide 3 datos para funcionar:
transform.RotateAround (Centro de rotación (el personaje), Eje sobre el que girara el objeto (eje Y de la camara), Ángulo a sumar o restar para que gire (Ecuación) *Time.deltaTime);El problema es que aquí entran las matemáticas y creo que esto tiene algo que ver con el seno y el coseno, pero no encuentro la ecuación para poner en su lugar y que la cámara sepa cuanto tiene que rotar.
¿Alguna idea? Saludos.
Usuario completo
Matemáticas Unity
si quieres hacerlo más fluido realiza una suma/resta entre ambos valores, actual y objetivo, divide ese valor entre el tiempo que quieras que pase la camara moviendose y en cada ciclo con time.deltatime añade/sustrae segun corresponda, ese valor, seria algo así como:
x= posicion actual x
y= posicion actual y
z= posicion actual z
si(x>=180)//para el ejemplo pongo todos los valores objetivos en 180º
rango x = objetivo X – x
si (x<180)
rango x = objetivo x + x
lo mismo para y
lo mismo para z
//supongamos que queremos que tarde 4 segundos en ponerse detras
actualizacion x = rango x/4.
mientras x sea distinto de objetivo x
si (x>=180)
x = x – rango x
si (x<180)
x = x + rango x
.
no se si sera mas corto o más facil con senos y cosenos…pero no creo que sea necesario
.
Agradecimientos – 1 Gracias
Usuario completo
Matemáticas Unity
Buenas tardes, más o menos así lo programé hace mucho tiempo cuando el proyecto lo estaba llevando a cabo con Blitz3D y no fue nada fácil porque cada objeto (la cámara y el personaje) puede encontrarse mirando a mas de 180º o a menos de 180º y pueden darse 4 situaciones diferentes que tienes que ir programando según el caso, es largo y tedioso. Además con el inconveniente de que la cámara tiene que volver a su posición detrás del personaje pero por el camino mas corto y a veces tiene que pasar por 0º.
Por eso pregunto, por si hay alguna función como Quaternion.Slerp por ejemplo o alguna ecuación matemática que me calcule ya todas las posiciones que pueden tener estos dos objetos y me ahorre todo el trabajo (que al final tendré que volver a hacerlo de la forma que dices). Un saludo.
Usuario Novato
Matemáticas Unity
si la camara no se mueve en X tiempo volver a ubicacion del persona(puedes poner un hitbox en la cabeza para que tenga algún punto donde basarse)je + eje (x,y,z preescrito)
Usuario completo