private void ProjectWindowItemCallback(string guid, Rect selectionRect) { if (!m_skin.loaded) { return; } if (m_assetsDirectoriesInfo.IsEmpty) { return; } var path = AssetDatabase.GUIDToAssetPath(guid); if (string.IsNullOrEmpty(path)) { return; } int usedCount, assetsCount, editorAssetsCount; FileSize size; if (Directory.Exists(path)) { path = path.TrimEnd('/', '\\'); if (m_assetsDirectoriesInfo.GetDirectoryInfo(path, out assetsCount, out usedCount, out editorAssetsCount, out size)) { Color backgroundColor; GUIContent content; if (assetsCount == 0) { if (editorAssetsCount == 0) { backgroundColor = m_skin.overlayUnusedColor; content = m_skin.overlayEmptyContent; } else { backgroundColor = m_skin.overlaySpecialColor; content = m_skin.overlayHasSpecialContent; } } else { backgroundColor = Color.Lerp(m_skin.overlayUnusedColor, m_skin.overlayUsedColor, (float)usedCount / assetsCount); content = new GUIContent(string.Format("{0}/{1} | {2}", usedCount, assetsCount, size)); } using (GUIHelpers.BackgroundColor(backgroundColor)) { GUIHelpers.StaticLabel(selectionRect, content, m_skin.projectOverlayMask, false); } } else if (AssetsDirectoriesInfo.IsInSpecialEditorDirectory(path)) { using (GUIHelpers.BackgroundColor(m_skin.overlaySpecialColor)) { GUIHelpers.StaticLabel(selectionRect, m_skin.overlaySpecialContent, m_skin.projectOverlayMask, false); } } } else if (m_assetsByPath != null) { AssetEntry asset; if (m_assetsByPath.TryGetValue(path, out asset)) { using (GUIHelpers.BackgroundColor(m_skin.overlayUsedColor)) { GUIHelpers.StaticLabel(selectionRect, asset.sizeContent, m_skin.projectOverlayMask, false); } } else { var directory = ReliablePath.GetDirectoryName(path); if (m_assetsDirectoriesInfo.GetDirectoryInfo(directory, out assetsCount, out usedCount, out editorAssetsCount, out size)) { using (GUIHelpers.BackgroundColor(m_skin.overlayUnusedColor)) { GUIHelpers.StaticLabel(selectionRect, m_skin.overlayUnusedContent, m_skin.projectOverlayMask, false); } } else if (AssetsDirectoriesInfo.IsInSpecialEditorDirectory(path)) { using (GUIHelpers.BackgroundColor(m_skin.overlaySpecialColor)) { GUIHelpers.StaticLabel(selectionRect, m_skin.overlaySpecialContent, m_skin.projectOverlayMask, false); } } } } }