// Update is called once per frame void Update() { if (m_isWorking == true) { if (Input.GetMouseButtonDown(1)) { ExitBuilding(); } else { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (!EventSystem.current.IsPointerOverGameObject() && Physics.Raycast(ray, out hit, 1000.0f, 1 << 11)) { Vector3 localVector = GLobalToLocal(hit.point); Vector3Int itemPosition = HitToMap(localVector); bool avaliable = CheckPlaneUpdate(itemPosition); if (avaliable) { if (Input.GetMouseButtonDown(0)) { Generate(itemPosition); } } } } if (Input.GetKeyDown(KeyCode.E)) { m_rotation_offset = (m_rotation_offset + 1) % 4; m_itemPre.SetRotation(m_rotation_offset); } else if (Input.GetKeyDown(KeyCode.Q)) { m_rotation_offset = (m_rotation_offset - 1 + 4) % 4; m_itemPre.SetRotation(m_rotation_offset); } } }