Jump to content

Search the Community

Showing results for tags 'ángulos'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
    • Youtube
  • Mesa de ayuda
    • Unity
    • Arte
    • Builds & Dispositivos
    • Otras Especialidades
  • Aportes de la Comunidad
    • Recursos
    • Eventos
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 1 result

  1. Hola, buenas a todos, sobre la duda que tengo es un poco “rara” de explicar, así que lo haré por guiones para que quede más esquemático: 1) Tengo en la escena un UI image, que está situado en el punto A de la foto adjunta 1 y 2 2) De donde he pulsado con el ratón en la UI image (punto A), a donde se encuentre el ratón manteniendo pulsado (punto B), me forma un vector. Este vector juntamente con el horizontal (AC), forman un ángulo, que es el que yo busco. 3) Hay que tener en cuenta que la UI image puede tener diferentes ángulos, y por eso el vector horizontal AC es respecto a la UI image y no respecto al escenario 2D (ejemplo foto 1 y 2) He hecho varios intentos, y con el que me he acercado más ha sido con que adjunto. Lo que he hecho ha sido crear una variable “coordRaton” que es el punto B de la foto. La variable “coordRatonPulsado” pretende guardar las coordenadas de donde se ha pulsado encima de la UI image (punto A). Para que me calcule el ángulo una vez he pulsado encima de la UI image estando encima de esta o no, he creado la variable “pulsado”. Para finalizar, dentro del condicional pulsado == 1, he cargado a la consola el valor del ángulo entre el vector AB (vectRadio) y AC (vectHorizontal). Pero no da el resultado deseado. Como se ve en la tercera imagen, cuando estoy en la izquierda marca 0º y a medida que voy trazando un semicírculo hacia arriba llego a 90º y después a 180º. El problema está en que cuando empiezo a descender el ratón, me marca los valores que están en rojo, y no los que están en negro que son los que quiero. Así pues, ¿cómo puedo hacer que me vaya de 0º hasta 360º, en vez de 0º a 180º y de 180º a 0º? Adjunto también un pequeño gif para acabar de aclarar la idea de la foto 3. Por favor, si alguien puede ayudarme se lo agradecería mucho, he hecho muchas pruebas y he buscado en muchos sitios, pero no he dado con la solución. Y si me he complicado mucho la vida con la idea o con el script proponedme otra alternativa más sencilla por favor. Muchas gracias por su tiempo y ayuda Vector2 coordRaton; Vector2 coordRatonPulsado; int pulsado; // 0 no pulsado y 1 sí pulsado void Update() { coordRaton = Input.mousePosition; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.DrawRay(ray.origin, ray.direction * 100, Color.green); RaycastHit hit; if (Input.GetMouseButton(0) && Physics.Raycast(ray, out hit) == true) { if (hit.collider.name == "Image") { coordRatonPulsado = Input.mousePosition; pulsado = 1; } } if (Input.GetMouseButtonUp(0)) { pulsado = 0; } if (pulsado == 1) { Vector2 vectRadio = new Vector2(coordRatonPulsado.x - coordRaton.x, coordRatonPulsado.y - coordRaton.y); Vector2 vectHorizontal = new Vector2(coordRatonPulsado.x, 0); float grados = Vector2.Angle(vectRadio, vectHorizontal); Debug.Log(grados); } }
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...