Simple Drag and Drop Jigsaw - Help!
I am trying to make an educational jigsaw with pieces of the skull being fit together, but I am having no luck with dragging and dropping the jigsaw pieces. I need to make it for a touchscreen, but just cannot seem to get anything to move.
Not sure if there's something I am missing, I have colliders of the jigsaw pieces, with the trigger event chosen, and when I used Debug.Log with OnMouseDown it registers the click, so unsure why it isn't moving the pieces.
Is there something else going wrong? Please help!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Draggable : MonoBehaviour {
[SerializeField]
private Transform bonePlace;
private Vector2 initialPosition;
private float deltaX, deltaY;
public static bool locked;
// Mark the bones initial position
void Start () {
initialPosition = transform.position;
}
private void Update () {
// if screen is touched and the bone is not locked in place, the bone will move
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))
{
Debug.Log ("PickedUp");
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 the bone isn't in the right place, it will move back to inital position
if (Mathf.Abs(transform.position.x - bonePlace.position.x) <= 0.5f &&
Mathf.Abs(transform.position.y - bonePlace.position.y) <= 0.5f)
{
transform.position = new Vector2(bonePlace.position.x, bonePlace.position.y);
}
else
{
transform.position = new Vector2 (initialPosition.x, initialPosition.y);
}
break;
}
}
}
}
Your answer
Follow this Question
Related Questions
Need advice making a drag and drop word game 1 Answer
how to let player drag and drop object into gameworld from a menu? 0 Answers
How to write good script that can use for many objects and use in many scenes without hardcoded. 0 Answers
copy file path into input Field with drag and drop 0 Answers
Avoid overlapping drag & drop game objects in 3d space 0 Answers