void Grab() { Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D col = ObjectUnderCursor(); if (col != null && col.transform.CompareTag("DragAbleObject")) { currentObject = col.transform.parent; objectOffset = (Vector2)currentObject.position - mousePos; currentDragAble = currentObject.GetComponent <DragAbleObject>(); if (currentObject.GetComponent <DragAbleObject>().IsOnGrid()) { List <Cell> cells = currentDragAble.GetOverlapCells(false); foreach (Cell c in cells) { c.inUse = false; } currentObject.GetComponent <DragAbleObject>().RemoveFromGrid(); } else { currentObject.GetComponent <DragAbleObject>().oldPosition = currentObject.transform.position; currentObject.GetComponent <DragAbleObject>().oldRotation = currentObject.transform.rotation; } currentDragAble = currentObject.GetComponent <DragAbleObject>(); currentDragAble.beingMoved = true; } }
bool CheckIfTrashcan() { List <Cell> cells = currentDragAble.GetOverlapCells(false); if (cells == null || cells.Count == 0) { return(false); } foreach (Cell c in cells) { if (c.transform.parent != null && c.transform.parent.GetComponent <PlacementGrid>().IsTrashcan) { return(true); } } return(false); }
bool CheckIfDropAble() { DragAbleObject dragObject = currentObject.GetComponent <DragAbleObject>(); return(currentObject != null && dragObject.GetOverlapCells(true)?.Count == dragObject.cellAmount); }