protected override void UpdateItems()
        {
            var parentMatrix = transform.worldToLocalMatrix;

            ClipText.SetMaterialClip(m_TextMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_SceneIconDarkMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_SceneIconWhiteMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_ExpandArrowMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_LockIconMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_UnlockIconMaterial, parentMatrix, m_Extents);

            m_VisibleItemHeight = 0;

            var searchQuery = getSearchQuery();

            if (searchQuery != null && searchQuery.CompareTo(m_LastSearchQuery) != 0)
            {
                m_LastSearchQuery = searchQuery;
                m_HasLockedQuery  = searchQuery.Contains(lockedQueryString);
                if (m_HasLockedQuery)
                {
                    searchQuery = searchQuery.Replace(lockedQueryString, string.Empty).Trim();
                }

                m_HasFilterQuery = !string.IsNullOrEmpty(searchQuery);
            }

            base.UpdateItems();

            UpdateDropZones();
        }
        protected override void UpdateItems()
        {
            var parentMatrix = transform.worldToLocalMatrix;

            ClipText.SetMaterialClip(m_TextMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_ExpandArrowMaterial, parentMatrix, m_Extents);

            base.UpdateItems();
        }
        void UpdateFolderItem(FolderData data, int order, float offset, int depth, bool expanded, ref bool doneSettling)
        {
            var            index = data.index;
            FolderListItem item;

            if (!m_ListItems.TryGetValue(index, out item))
            {
                GetNewItem(data, out item);
            }

            item.UpdateSelf(m_Size.x - k_ClipMargin, depth, expanded, index == selectedFolder);

            ClipText.SetMaterialClip(item.cubeMaterial, transform.worldToLocalMatrix, m_Extents);

            UpdateItem(item, order, offset, ref doneSettling);
        }
        void UpdateHierarchyItem(HierarchyData data, int order, ref float offset, int depth, bool?expanded, ref bool doneSettling)
        {
            var index = data.index;
            HierarchyListItem item;

            if (!m_ListItems.TryGetValue(index, out item))
            {
                GetNewItem(data, out item);
            }

            var go  = data.gameObject;
            var kvp = new KeyValuePair <Transform, GameObject>(item.hoveringRayOrigin, go);

            // Multiple rays can hover and unhover, so it's necessary to keep track of when hover state changes, so that
            // highlights can be turned on or off
            if (item.hovering || m_HoveredGameObjects.Remove(kvp))
            {
                this.SetHighlight(go, item.hovering, item.hoveringRayOrigin, force: item.hovering);

                if (item.hovering)
                {
                    m_HoveredGameObjects.Add(kvp);
                }
            }

            var width  = m_Size.x - k_ClipMargin;
            var locked = this.IsLocked(data.gameObject);

            item.UpdateSelf(width, depth, expanded, index == m_SelectedRow, locked);

            var worldToLocalMatrix = transform.worldToLocalMatrix;

            ClipText.SetMaterialClip(item.cubeMaterial, worldToLocalMatrix, m_Extents);
            ClipText.SetMaterialClip(item.dropZoneMaterial, worldToLocalMatrix, m_Extents);

            m_VisibleItemHeight += itemSize.z;
            UpdateItem(item, order, offset + m_ScrollOffset, ref doneSettling);

            var extraSpace = item.extraSpace * itemSize.z;

            offset += extraSpace;
            m_VisibleItemHeight += extraSpace;
        }
        protected override void ComputeConditions()
        {
            // Check if object was deleted
            if (data.Count > 0 && !data[0].serializedObject.targetObject)
            {
                data = new List <InspectorData>();
            }

            base.ComputeConditions();

            m_StartPosition = m_Extents.z * Vector3.back;

            var parentMatrix = transform.worldToLocalMatrix;

            ClipText.SetMaterialClip(m_RowCubeMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_BackingCubeMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_UIMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_UIMaskMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_HighlightMaterial, parentMatrix, m_Extents);
            ClipText.SetMaterialClip(m_HighlightMaskMaterial, parentMatrix, m_Extents);
        }