void PlaceObject() { if (hasObj) { UpdateMousePosition(); Node curNode = gridBase.NodeFromWorldPosition(mousePosition); worldPosition = curNode.vis.transform.position; if (cloneObj == null) { cloneObj = Instantiate(objToPlace, worldPosition, Quaternion.identity) as GameObject; objProperties = cloneObj.GetComponent <Level_Object>(); } else { cloneObj.transform.position = worldPosition; if (Input.GetMouseButton(0) && !ui.mouseOverUIElement) { if (curNode.placeObj != null) { manager.inSceneGameObjects.Remove(curNode.placeObj.gameObject); Destroy(curNode.placeObj.gameObject); curNode.placeObj = null; } GameObject actualObjPlaced = Instantiate(objToPlace, worldPosition, cloneObj.transform.rotation) as GameObject; actualObjPlaced.transform.parent = GameObject.Find("room").transform; Level_Object placedObjProperties = actualObjPlaced.GetComponent <Level_Object>(); curNode.placeObj = placedObjProperties; placedObjProperties.gridPosX = curNode.nodePosX; placedObjProperties.gridPosY = curNode.nodePosY; manager.inSceneGameObjects.Add(actualObjPlaced); } if (Input.GetMouseButton(1)) { objProperties.ChangeRotation(); } } } else { if (cloneObj != null) { Destroy(cloneObj); } } }