JuanchiBM 2 Report post Posted July 27, 2020 Bueno, basicamente es lo que dice en el titulo, solo queria saber si alguno sabe una forma para crear un "If" que se active solo si la rotacion de un objeto es mayor a 20°, gracias 😄 Share this post Link to post Share on other sites
paio458 1 Report post Posted July 27, 2020 (edited) Hola si estas trabajando con angulos eules creo que deberías comprobar la rotación del transform en el eje que deseas saber por ejemplo en el angulo x if ( transform.eulerAngles.x >= 20) ........ Edited July 27, 2020 by paio458 Error de sitaxis Share this post Link to post Share on other sites
Igor 337 Report post Posted July 27, 2020 (edited) euler angles puede dar un valor "raro" dependiendo s de como este rotado el objeto.... si quieres saber si el objeto "mira" hacia arriba mas de 20 grados puedes usar "transform.forward.y"... el seno de 20 es 0.34202 si "transform.forward.y" es mayor de 0.342 el objeto mira para arriba mas de 20 grados (si lo que quieres es saber si es mayor de 20 grados hacia abajo sera "transform.forward.y < -0.342f") Edited July 27, 2020 by Igor Share this post Link to post Share on other sites
JuanchiBM 2 Report post Posted July 27, 2020 15 hours ago, paio458 said: Hola si estas trabajando con angulos eules creo que deberías comprobar la rotación del transform en el eje que deseas saber por ejemplo en el angulo x if ( transform.eulerAngles.x >= 20) ........ 10 hours ago, Igor said: euler angles puede dar un valor "raro" dependiendo s de como este rotado el objeto.... si quieres saber si el objeto "mira" hacia arriba mas de 20 grados puedes usar "transform.forward.y"... el seno de 20 es 0.34202 si "transform.forward.y" es mayor de 0.342 el objeto mira para arriba mas de 20 grados (si lo que quieres es saber si es mayor de 20 grados hacia abajo sera "transform.forward.y < -0.342f") No me anduvo con ninguna forma (Obviamente cambie los signos por z) y no se porque Lo hice asi: // Si cumple entre -20° y 20° arbol de Jugador == true if (collision.transform.tag == "Jugador") { if (gameObject.transform.eulerAngles.z >= 20 || gameObject.transform.eulerAngles.z <= -20) { Player.GetComponent<Jugador>().arbol = true; } else { Player.GetComponent<Jugador>().arbol = false; } } Y asi: // Si cumple entre -20° y 20° arbol de Jugador == true if (collision.transform.tag == "Jugador") { if (transform.forward.z > 0.342f || transform.forward.z < -0.342f) { Player.GetComponent<Jugador>().arbol = true; } else { Player.GetComponent<Jugador>().arbol = false; } } Funciona pero no reconoce el angulo, como que no pasan los 20 angulos y sigo pudiendome parar (A penas toco el arbol ya la variable "Arbol" Se hace true) El tag "Jugador" Es de mi jugador y el booleano "Arbol" Si no es verdadero, el personaje no se puede parar encima del mismo Share this post Link to post Share on other sites
Igor 337 Report post Posted July 27, 2020 (edited) si es el angulo z el que quieres comprobar en vez de "transform.forward.z" pon "transform.right.y" Edited July 27, 2020 by Igor 3 Share this post Link to post Share on other sites
JuanchiBM 2 Report post Posted July 27, 2020 1 hour ago, Igor said: si es el angulo z el que quieres comprobar en vez de "transform.forward.z" pon "transform.right.y" Sos un genio maestro, muchas gracias Share this post Link to post Share on other sites