The question is answered, right answer was accepted
Drag 2D Sprite by Touch
Im able to drag and drop gameobjects by touch. Well, here is an example script from the internet:
using UnityEngine; using System.Collections;
public class Drag2 : MonoBehaviour { private float dist; private bool dragging = false; private Vector3 offset; private Transform toDrag;
void Update()
{
Vector3 v3;
if (Input.touchCount != 1)
{
dragging = false;
return;
}
Touch touch = Input.touches[0];
Vector3 pos = touch.position;
if (touch.phase == TouchPhase.Began)
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(pos);
if (Physics.Raycast(ray, out hit) && (hit.collider.tag == "Circle"))
{
Debug.Log("Here");
toDrag = hit.transform;
dist = hit.transform.position.z - Camera.main.transform.position.z;
v3 = new Vector3(pos.x, pos.y, dist);
v3 = Camera.main.ScreenToWorldPoint(v3);
offset = toDrag.position - v3;
dragging = true;
}
}
if (dragging && touch.phase == TouchPhase.Moved)
{
v3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, dist);
v3 = Camera.main.ScreenToWorldPoint(v3);
toDrag.position = v3 + offset;
}
if (dragging && (touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled))
{
dragging = false;
}
}
} Problem: i have no idea how to do that with Sprites which are 2D and have a Rigidbody2D and Collider2D. The above scripts needs mesh which is not for 2D. Any solutions ?
Follow this Question
Related Questions
Corgi Engine - Character glitches with "jump" animation on top of a ladder 0 Answers
After Rotating a Prefab, Transform.Position of children is inaccurate 1 Answer
Pipe Game Water Flow 0 Answers
KillPlayer, Null Reference Exception. 2 Answers
No overload for method 'fireBullet' takes 0 arguments 1 Answer