private void GhostObject() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, terrainMask)) { if (ghostObject == null) { ghostObject = Instantiate(active.getPrefab()); ghostObject.transform.parent = parentObject.transform; ghostObject.name = "Ghost Object"; ghostRenderer = ghostObject.GetComponentInChildren <MeshRenderer>(); } else { if (ValidLocation(hit)) { ghostRenderer.material = validMat; } else { ghostRenderer.material = invalidMat; } } ghostObject.transform.position = hit.point + active.getOffset(); } else { DestroyGhost(); } }