Skip to content

Instantly share code, notes, and snippets.

@sdabet
Last active July 19, 2023 17:42
Show Gist options
  • Save sdabet/3bda94676a4674e6e4a0 to your computer and use it in GitHub Desktop.
Save sdabet/3bda94676a4674e6e4a0 to your computer and use it in GitHub Desktop.
Simulating touch events from mouse events in Unity
void Update () {
// Handle native touch events
foreach (Touch touch in Input.touches) {
HandleTouch(touch.fingerId, Camera.main.ScreenToWorldPoint(touch.position), touch.phase);
}
// Simulate touch events from mouse events
if (Input.touchCount == 0) {
if (Input.GetMouseButtonDown(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Began);
}
if (Input.GetMouseButton(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Moved);
}
if (Input.GetMouseButtonUp(0) ) {
HandleTouch(10, Camera.main.ScreenToWorldPoint(Input.mousePosition), TouchPhase.Ended);
}
}
}
private void HandleTouch(int touchFingerId, Vector3 touchPosition, TouchPhase touchPhase) {
switch (touchPhase) {
case TouchPhase.Began:
// TODO
break;
case TouchPhase.Moved:
// TODO
break;
case TouchPhase.Ended:
// TODO
break;
}
}
@lefty-son
Copy link

perfect snippet.

@danioscx
Copy link

Thank you very much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment