private void SetSelectedGroupToRotator() { HexagonGroupRotator.Instance.Activate(); HexagonGroupRotator.Instance.UpdateRotation(_selectedGroup.Rotation); HexagonGroupRotator.Instance.SetPosition(HexagonManager.Instance.PixelToWorld(_selectedGroup.GetCenter())); HexagonGroupRotator.Instance.SetHexagons(HexagonManager.Instance.GetHexagon(_selectedGroup.A), HexagonManager.Instance.GetHexagon(_selectedGroup.B), HexagonManager.Instance.GetHexagon(_selectedGroup.C)); }
public HexagonGroup NearestGroupTo(Vector2 position) { HexagonGroup nearest = _groupList[0]; float minDistance = Vector2.Distance(nearest.GetCenter(), position); for (int i = 1; i < _groupList.Count; i++) { if (minDistance > Vector2.Distance(_groupList[i].GetCenter(), position)) { minDistance = Vector2.Distance(_groupList[i].GetCenter(), position); nearest = _groupList[i]; } } return(nearest); }
private void OnTap(Vector3 pos) { if (_gameOver || _restarting || _rotating) { return; } HexagonGroup group = HexagonGroupManager.Instance.NearestGroupTo(pos + (Vector3)HexagonManager.Instance.CenterOffset()); float distance = Vector3.Distance(HexagonManager.Instance.PixelToWorld(group.GetCenter()), pos); //checking if tapping other than grid. if (distance < 1f) { _selectedGroup = HexagonGroupManager.Instance.NearestGroupTo(pos + (Vector3)HexagonManager.Instance.CenterOffset()); SetSelectedGroupToRotator(); _anyGroupSelected = true; } }