En un diseño 2D, tener un GameObject fijo en su lugar similar a un botón que tiene un script con la función OnMouseDown y OnMouseUp: tocar eso, mover el dedo y soltarlo, ¿puede eso OnMouseUp obtener eso correspondiente posición de liberación del dedo en la pantalla?

El problema es: es un multijugador, ¡muchos otros dedos en la pantalla!

1
Marco Antonio 16 oct. 2018 a las 03:40

2 respuestas

La mejor respuesta

No debería usar las funciones de devolución de llamada OnMouseDown y OnMouseUp para esto porque eso requeriría que obtenga la posición táctil con Input.mousePosition en los escritorios y { {X3}} en dispositivos móviles.

Esto debe hacerse con las funciones OnPointerDown y OnPointerUp que le dan PointerEventData como parámetro. Puede acceder a la posición del puntero allí con PointerEventData.position. Funcionará tanto en dispositivos móviles como de escritorio sin tener que escribir código diferente para cada plataforma. Tenga en cuenta que debe implementar las interfaces IPointerDownHandler y IPointerUpHandler para que se invoquen estas funciones.

public void OnPointerDown(PointerEventData eventData)
{
    Debug.Log("Mouse Down:  " + eventData.position);
}

public void OnPointerUp(PointerEventData eventData)
{
    Debug.Log("Mouse Up: " + eventData.position);
}

Si tiene problemas con él, siempre puede visitar la sección de solución de problemas en esta publicación para ver por qué.

1
Programmer 16 oct. 2018 a las 05:13

Respuesta corta sí. sin embargo, esto se confunde un poco con el multitáctil. Básicamente, puede obtener la posición mouse o finger en cualquier momento. puede rastrearlo en tiempo real si lo desea y mostrar la posición del mouse en todo momento con bastante facilidad. la variable Input.MousePosition es fácil de tomar. el problema surge cuando tienes más de un mouse o finger en el sentido de que necesitas rastrear qué dedo está arriba y cuáles aún abajo. Aún así, si lo configura correctamente, debería funcionar, solo requerirá más esfuerzo. mi consejo, sin embargo, si maneja más de un toque, es usar Módulo de entrada multitáctil autónomo. es gratis en la tienda de activos y he incluido un enlace para usted. es bastante sencillo.

0
PrinceOfRavens 16 oct. 2018 a las 01:39