- Home /
Question by
unity_C463A4ED6528697DDF94 · Jul 07, 2021 at 07:13 AM ·
mouse-dragmouse movementmouse control
How to convert Touch Input To Mouse Input C# unity?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Bear : MonoBehaviour
{
[SerializeField]
private Transform ballpngg;
private Vector2 initialPosition;
private float deltaX, deltaY;
public static bool locked;
// Use this for initialization
void Start ()
{
initialPosition = transform.position;
}
private void Update ()
{
if (Input.touchCount > 0 && !locked)
{
Touch touch = Input.GetTouch(0);
Vector2 touchPos = Camera.main.ScreenToWorldPoint(touch.position);
switch (touch.phase)
{
case TouchPhase.Began:
if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos))
{
deltaX = touchPos.x - transform.position.x;
deltaY = touchPos.y - transform.position.y;
}
break;
case TouchPhase.Moved:
if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos))
transform.position = new Vector2(touchPos.x - deltaX, touchPos.y - deltaY);
break;
case TouchPhase.Ended:
if (Mathf.Abs(transform.position.x - ballpngg.position.x) <= 0.5f &&
Mathf.Abs(transform.position.y - ballpngg.position.y) <= 0.5f)
{
transform.position = new Vector2(ballpngg.position.x, ballpngg.position.y);
locked = true;
}
else
{
transform.position = new Vector2(initialPosition.x, initialPosition.y);
}
break;
}
}
}
}
Comment
If i'm not mistaken you shouldn't have to do these conversions anymore. Is this UI?
https://answers.unity.com/questions/1007688/inputgetmousebuttondown-translates-automatically-t.html