void ClearInteractorHover(BaseInteractor interactor, List <BaseInteractable> validTargets) { interactor.GetHoverTargets(m_HoverTargetList); for (int i = 0; i < m_HoverTargetList.Count; i++) { var target = m_HoverTargetList[i]; if (!interactor.allowHover || !interactor.CanHover(target) || !target.IsHoverableBy(interactor) || (validTargets == null || !validTargets.Contains(target))) { HoverExit(interactor, target); } } }
void InteractorHoverValidTargets(BaseInteractor interactor, List <BaseInteractable> validTargets) { if (interactor.allowHover) { var orderedTargets = validTargets.OrderBy(x => x.priority).ToList(); for (var i = 0; i < orderedTargets.Count; ++i) { interactor.GetHoverTargets(m_HoverTargetList); if (interactor.CanHover(orderedTargets[i]) && orderedTargets[i].IsHoverableBy(interactor) && !m_HoverTargetList.Contains(orderedTargets[i])) { HoverEnter(interactor, orderedTargets[i]); return; } } } }