public void DropObject(Vector3 location, Quaternion rotation) { Box droppedItem = carriedObjects.Peek(); //Transfering object to another grid. if (droppedItem.puzzle != null) { if (!droppedItem.puzzle.IsInPuzzleBoundry(location)) { exception.FlashText("OUT OF BOUNDS"); return; } droppedItem.puzzle.ShowBoundry(false); } droppedItem.grid = placementGrid; droppedItem.transform.SetParent(placementGrid.transform); carriedObjects.Pop(); placementPreviews[0].gameObject.SetActive(false); placementPreviews[1].gameObject.SetActive(false); boxInventoryDisplay.RemoveBox(); if (carriedObjects.Count > 0) { carriedItem = carriedObjects.Peek(); } //SetCarriedItemMeshMaterialAndRigidbody(carriedObjects.Peek()); droppedItem.AddMyself(true); droppedItem.gameObject.SetActive(true); //Remove constraints of rigidbody droppedItem.transform.position = location; droppedItem.transform.rotation = rotation; droppedItem.Frozen = false; }