// Update is called once per frame void Update() { if (viewController.overhead) { if (Input.GetMouseButtonDown(2)) { Ray ray = camera.ScreenPointToRay(Input.mousePosition); foreach (RaycastHit hit in Physics.RaycastAll(ray)) { if (hit.transform.tag != "SelectableRegion") { continue; } SelectableRegion region = hit.transform.GetComponent <SelectableRegion>(); JumpTo(region); // Do something with the object that was hit by the raycast. } } if (Input.GetMouseButtonDown(1)) { float closestDistance = 1000; Ray ray = camera.ScreenPointToRay(Input.mousePosition); float range = camera.farClipPlane - camera.nearClipPlane; foreach (RaycastHit hit in Physics.RaycastAll(ray)) { if (hit.distance < range && hit.distance < closestDistance) { coordText.text = "Coordinates: " + hit.point; lastClick = hit.point; closestDistance = hit.distance; } } } } }
void JumpTo(SelectableRegion region) { fpsController.transform.position = region.jumpPoint; viewController.SwitchView(); }