Можете ли вы получить положение пальца из OnMouseDown и OnMouseUp? - PullRequest
0 голосов
/ 16 октября 2018

На 2D-макете, с фиксированным на месте GameObject, похожим на кнопку, который имеет скрипт с функциями OnMouseDown и OnMouseUp: прикосновение к нему, отвод пальца и отпускание, может ли OnMouseUp получить это соответствующее положение отпускания пальцев на экране?

Подвох: мультиплеер, много других пальцев на экране!

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вы не должны использовать для этого функции обратного вызова OnMouseDown и OnMouseUp, потому что для этого потребуется получить позицию касания с помощью Input.mousePosition на настольных ПК и Input.touches на мобильномустройства.

Это должно быть сделано с функциями OnPointerDown и OnPointerUp, которые дают вам PointerEventData в качестве параметра.Вы можете получить доступ к позиции указателя с помощью PointerEventData.position.Он будет работать как на мобильных, так и на настольных устройствах без необходимости писать разные коды для каждой платформы.Обратите внимание, что вы должны реализовать интерфейсы IPointerDownHandler и IPointerUpHandler для вызова этих функций.

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

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

Если у вас возникли проблемы с ним, вы всегда можете посетить раздел устранения неполадок в этой записи , чтобы узнать, почему.

0 голосов
/ 16 октября 2018

короткий ответ да.однако это становится немного запутанным с мультисенсором.в принципе, вы можете получить позицию mouse или finger в любое время.Вы можете отслеживать это в режиме реального времени, если хотите, и отображать положение мыши в любое время довольно легко.переменную Input.MousePosition легко получить.проблема возникает, когда у вас есть более одного mouse или finger, в котором вам нужно отследить, какой палец поднят, а какой еще опущен.Тем не менее, если вы настроите его правильно, он должен работать, это потребует больше усилий.Однако мой совет, если вы обрабатываете более одного касания, это использовать Автономный модуль ввода MultiTouch. его бесплатно в магазине активов, и я включил ссылку для вас.это довольно просто.

...