//droppa nella droppable area il droppable object trascinato protected void DropItem(DroppableArea d, DraggableObject draggableComponent) { draggableComponent.StopDragging(draggableComponent.CheckIfCorrectDropArea(d.GetMainType(), d.GetSubType()), d.gameObject); draggableComponent.SetDropAreaDestination(d.transform.position); draggableComponent.SetDroppableArea(d.gameObject); d.SetContainedPiece(draggableComponent.gameObject); d.SetOccupied(true); }
//cose da fare quando il mouse viene rilasciato o quando la mano di apre void Drop() { ChangeHandSprite("open"); // se sto effettivamente trascinando qualcosa if (pieceTaken != null) { DraggableObject draggableComponent = pieceTaken.GetComponent <DraggableObject>(); if (draggableComponent.GetDroppableArea() != null) { draggableComponent.GetDroppableArea().SetOccupied(false); } //se sei sopra una droppable area if (droppableArea.Count > 0) { //ho trovato qualcosa? bool found = false; foreach (DroppableArea d in droppableArea) { //se e' giusta la droppable area if (draggableComponent.CheckIfCorrectDropArea(d.GetMainType(), d.GetSubType()) && !d.GetOccupied()) { DropItem(d, draggableComponent); piecePositioned(); found = true; } } //se non ho trovato nessuna droppable area compatibile if (!found) { draggableComponent.StopDragging(false, null); } } else { //altrimenti semplicemente sei fuori da una droppable area draggableComponent.StopDragging(false, null); } //alla fine comunque vada non hai piu' un pezzo da draggare e non stai draggando pieceTaken = null; dragging = false; } }