Esempio n. 1
0
        private void UpdateHighlightState()
        {
            if (CanHighlight())
            {
                VR_Highlight highlight = FindNearHighlight();

                //if we lost the nearest object
                if (highlight == null && currentHighlight != null)
                {
                    currentHighlight.UnHighlight(this);
                    currentHighlight = null;
                }

                //if we found a new object and we dont have highlight
                if (currentHighlight == null && highlight != null)
                {
                    currentHighlight = highlight;
                    highlight.Highlight(this);
                }

                //if we found a new closer object
                else if (highlight != null && highlight != currentHighlight)
                {
                    currentHighlight.UnHighlight(this);
                    highlight.Highlight(this);
                    currentHighlight = highlight;
                }

                //update the current higlight object, be sure that it is always on
                else if (highlight != null && currentHighlight == highlight && !currentHighlight.IsHighlight)
                {
                    currentHighlight.Highlight(this);
                }
            }
            else if (currentHighlight != null)
            {
                currentHighlight.UnHighlight(this);
                currentHighlight = null;
            }
        }