////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            if ( CursorDataProvider == null ) {
                CursorDataProvider = FindObjectOfType<HoverCursorDataProvider>();
            }

            if ( ProximityProvider == null ) {
                ProximityProvider = GetComponent<HoverRendererController>();
            }

            if ( InteractionSettings == null ) {
                InteractionSettings = (GetComponent<HoverInteractionSettings>() ??
                    FindObjectOfType<HoverInteractionSettings>());
            }

            if ( CursorDataProvider == null ) {
                Debug.LogWarning("Could not find 'CursorDataProvider'.");
            }

            if ( ProximityProvider == null ) {
                Debug.LogWarning("Could not find 'ProximityProvider'.");
            }

            if ( InteractionSettings == null ) {
                Debug.LogWarning("Could not find 'InteractionSettings'.");
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            if ( CursorDataProvider == null ) {
                CursorDataProvider = FindObjectOfType<HoverCursorDataProvider>();
            }

            if ( LeapControl == null ) {
                LeapControl = FindObjectOfType<HandController>();
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            if ( CursorDataProvider == null ) {
                CursorDataProvider = FindObjectOfType<HoverCursorDataProvider>();
            }

            if ( LeapServiceProvider == null ) {
                LeapServiceProvider = FindObjectOfType<LeapServiceProvider>();
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            if ( CursorDataProvider == null ) {
                CursorDataProvider = FindObjectOfType<HoverCursorDataProvider>();
            }

            if ( CursorDataProvider == null ) {
                throw new ArgumentNullException("CursorDataProvider");
            }

            vHighStates = new List<HoverItemHighlightState>();
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public override void OnInspectorGUI()
        {
            vTarget = (HoverCursorDataProvider)target;

            DrawDefaultInspector();
            EditorGUILayout.Separator();
            DrawCursorList("Cursors", vTarget.Cursors);

            if ( vTarget.ExcludedCursors.Count == 0 ) {
                return;
            }

            EditorGUILayout.Separator();
            EditorGUILayout.HelpBox("One or more duplicate cursor types were found. The following "+
                "cursors have been excluded from the cursor list.", MessageType.Error);
            DrawCursorList("Excluded Cursors", vTarget.ExcludedCursors);
        }