Ответ 1
Краткий ответ: да, касание может быть обработано с помощью Input.GetMouseButtonDown()
.
-
Input.GetMouseButtonDown()
,Input.mousePosition
и связанные с ними функции работают как тап на сенсорном экране (что довольно странно, но приветствуется). Если у вас нет мультитач-игры, это хороший способ обеспечить нормальную работу игры в редакторе, сохраняя сенсорный ввод для устройств. (источник: Unity Community)
Симуляция мыши касаниями может быть включена/отключена сInput.simulateMouseWithTouches
параметраInput.simulateMouseWithTouches
. По умолчанию эта опция включена.
Хотя это хорошо для тестирования, я считаю, чтоInput.GetTouch()
должен использоваться в производственном коде (потому что он способен обрабатывать одновременные касания). -
Интересный подход заключается в добавлении обработки касаний в
OnMouseUp()
/OnMouseDown()
:// OnTouchDown.cs // Allows "OnMouseDown()" events to work on the iPhone. // Attach to the main camera. using UnityEngine; using System.Collections; using System.Collections.Generic; public class OnTouchDown : MonoBehaviour { void Update () { // Code for OnMouseDown in the iPhone. Unquote to test. RaycastHit hit = new RaycastHit(); for (int i = 0; i < Input.touchCount; ++i) if (Input.GetTouch(i).phase.Equals(TouchPhase.Began)) { // Construct a ray from the current touch coordinates Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position); if (Physics.Raycast(ray, out hit)) hit.transform.gameObject.SendMessage("OnMouseDown"); } } }
(источник: ответы Unity)
UPD.: Существует мобильное приложение Unity Remote для имитации касания в режиме редактора (работает с Unity Editor 4 и Unity Editor 5).