How to end game when last item has been 'dragged and dropped'?
I followed a tutorial on YouTube (available at this link) to show how to drag/drop items in my game. Does anyone know how I could adapt the code to have the game automatically end or change scene when all tiles have been placed in the available slots? I'd also like to know if there's any way to restrict the user from dropping a tile onto a slot which has one on it already? This is all the source code I have for the drag/drop feature:
Slots source code
public class Slot : MonoBehaviour, IDropHandler {
public GameObject item {
get {
if(transform.childCount>0){
return transform.GetChild (0).gameObject;
}
return null;
}
}
#region IDropHandler implementation
public void OnDrop (PointerEventData eventData)
{
if(!item){
DragHandeler.itemBeingDragged.transform.SetParent (transform);
ExecuteEvents.ExecuteHierarchy<IHasChanged>(gameObject,null,(x,y) => x.HasChanged ());
}
}
DragHandler source code:
public void OnBeginDrag (PointerEventData eventData)
{
itemBeingDragged = gameObject;
startPosition = transform.position;
startParent = transform.parent;
GetComponent<CanvasGroup>().blocksRaycasts = false;
}
#endregion
#region IDragHandler implementation
public void OnDrag (PointerEventData eventData)
{
transform.position = eventData.position;
}
#endregion
#region IEndDragHandler implementation
public void OnEndDrag (PointerEventData eventData)
{
itemBeingDragged = null;
GetComponent<CanvasGroup>().blocksRaycasts = true;
if(transform.parent == startParent){
transform.position = startPosition;
}
}
Your answer
Follow this Question
Related Questions
How to end game automatically when last item is dragged and dropped in Unity? 1 Answer
Drag the screen back and forth to left/right level (mobile) 0 Answers
DragHandler not registering Drag 0 Answers
How to Pick-up/Drag/Throw Rigidbodies? [3D] 0 Answers
[SOLVED] When touch and drag objects fast (in android), leave dragging. 1 Answer