////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void DestroyRendererIfNecessary()
        {
            if ( ClickToRebuildRenderer || IdleRendererPrefab != vPrevIdlePrefab ) {
                vPrevIdlePrefab = IdleRendererPrefab;
                RendererUtil.DestroyRenderer(IdleRenderer);
                IdleRenderer = null;
            }

            ClickToRebuildRenderer = false;
        }
        /*--------------------------------------------------------------------------------------------*/
        public virtual void TreeUpdate()
        {
            DestroyRendererIfNecessary();
            IdleRenderer = (IdleRenderer ?? FindOrBuildIdle());

            IHoverCursorData cursorData = GetComponent<HoverCursorFollower>().GetCursorData();

            UpdatePosition(cursorData);
            UpdateIndicator(cursorData);
        }