private void SelectClosestRadialItem() { RadialItem lastClosest = closest; float closestDistance = 9999f; GameObject hand = GetHand(); if (closest != null && Vector3.Distance(closest.transform.position, hand.transform.position) > m_maxDistance * m_scale) { closest = null; } foreach (RadialItem item in radialItems) { if (item != closest) { item.Deselect(); } } foreach (RadialItem item in radialItems) { if (!item.Active) { continue; } float distance = Vector3.Distance(item.transform.position, hand.transform.position); if (distance < closestDistance) { closestDistance = distance; closest = item; } } if (closest != null && closest != lastClosest) { if (closestDistance < m_maxDistance * m_scale) { CellSound.Post(AK.EVENTS.GAME_MENU_SELECT_GEAR, closest.transform.position); SteamVR_InputHandler.TriggerHapticPulse(0.02f, 40f, 0.25f, Controllers.GetDeviceFromInteractionHandType(targetHand)); closest.Select(); m_lastHovered = closest; } else { closest = null; } } }