How to end game automatically when last item is dragged and dropped in Unity?
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;
}
}
Answer by JrDaily · Jun 21, 2019 at 01:21 AM
If you have an if statement detecting when the last item is dragged and dropped than you can add Application.Quit();
inside of it to immediately close the program. You will only be able to see it close the program once you build it because it won't close it inside of unity. Hope this was helpful.
Your answer
![](https://koobas.hobune.stream/wayback/20220612203552im_/https://answers.unity.com/themes/thub/images/avi.jpg)