public void OnClick() { if (state == DungeonUIState.Idle) { Vector3 point; if (BattleDef.useMouse) { point = Input.mousePosition; } else { point = Input.touches[0].position; } Ray ray = Camera.main.ScreenPointToRay(point); RaycastHit hit; Physics.Raycast(ray, out hit); int gridX, gridY; GameRoot.GetInstance().MapField.GetGridPos(hit.point.x, hit.point.z, out gridX, out gridY); if (hit.collider != null) { Vector2Int id = GameRoot.GetInstance().MapField.GetRoomViewId(gridX, gridY); Vector2Int center = GameRoot.GetInstance().MapField.GetRoomCenter(id.x, id.y); Debug.Log("center Pos:" + center); int key = id.x * 10 + id.y; if (key != 0) { state = DungeonUIState.Strategy; currRoomId = key; currRoomCenter = center; OpenDungeonInfo(); } } } }
// Use this for initialization void Start() { idleTime = 0; state = DungeonUIState.Idle; clickEvent.clickAction += OnClick; partIcons = new GameObject[4]; for (int i = 0; i < 4; ++i) { partIcons[i] = Instantiate(IconPrefab); partIcons[i].transform.parent = PartContainer[i].transform; switch (i) { case 0: partIcons[i].GetComponent <ClickEvent>().clickAction += () => { ClickCreature(0); }; break; case 1: partIcons[i].GetComponent <ClickEvent>().clickAction += () => { ClickCreature(1); }; break; case 2: partIcons[i].GetComponent <ClickEvent>().clickAction += () => { ClickCreature(2); }; break; case 3: partIcons[i].GetComponent <ClickEvent>().clickAction += () => { ClickCreature(3); }; break; } partIcons[i].transform.localPosition = new Vector3(-2, 0, 0); partIcons[i].transform.localScale = Vector3.one; partIcons[i].SetActive(false); } }