protected override void OnDrawRowItem(Rect rect, GridViewData itemData) { AssetDependency adData = itemData.GetData <AssetDependency>(); if (adData == null) { EditorGUI.LabelField(rect, "The data is null"); return; } Rect iconRect = new Rect(rect.x, rect.y, rect.height, rect.height); UnityObject assetObj = adData.cachedUObject; if (assetObj == null) { assetObj = AssetDatabase.LoadAssetAtPath(adData.assetPath, typeof(UnityObject)); adData.cachedUObject = assetObj; } Texture2D previewIcon = adData.cachedPreview; if (previewIcon == null) { previewIcon = EGUIResources.GetAssetPreview(assetObj); adData.cachedPreview = previewIcon; } GUI.DrawTexture(iconRect, previewIcon, ScaleMode.ScaleAndCrop); if (Event.current.type == EventType.MouseUp && iconRect.Contains(Event.current.mousePosition)) { SelectionUtility.PingObject(assetObj); } Rect labelRect = new Rect(iconRect.x + iconRect.width, iconRect.y, rect.width - iconRect.width, iconRect.height); EditorGUI.LabelField(labelRect, adData.assetPath, EGUIStyles.MiddleLeftLabelStyle); if (assetObj is Texture) { Rect memorySizeRect = new Rect(rect.x + rect.width - 60, rect.y, 60, rect.height); long memorySize = AssetDatabaseUtility.GetTextureStorageSize(assetObj as Texture); EditorGUI.LabelField(memorySizeRect, EditorUtility.FormatBytes(memorySize)); } }
protected override void OnDrawRowItem(Rect rect, GridViewData itemData) { AssetDependencyData adData = itemData.GetData <AssetDependencyData>(); Rect iconRect = new Rect(rect.x, rect.y, rect.height, rect.height); UnityObject assetObj = AssetDatabase.LoadAssetAtPath(adData.assetPath, typeof(UnityObject)); Texture2D previewIcon = null; if (assetObj == null) { previewIcon = EGUIResources.ErrorIcon; } else if (!AssetPreview.IsLoadingAssetPreview(assetObj.GetInstanceID())) { previewIcon = AssetPreview.GetAssetPreview(assetObj); } if (previewIcon == null) { previewIcon = EGUIResources.MakeColorTexture((int)iconRect.width, (int)iconRect.height, Color.grey); } GUI.DrawTexture(iconRect, previewIcon, ScaleMode.ScaleAndCrop); if (Event.current.type == EventType.MouseUp && iconRect.Contains(Event.current.mousePosition)) { SelectionUtility.PingObject(assetObj); } Rect labelRect = new Rect(iconRect.x + iconRect.width, iconRect.y, rect.width - iconRect.width, iconRect.height); EditorGUI.LabelField(labelRect, adData.assetPath, EGUIStyles.MiddleLeftLabelStyle); if (assetObj is Texture) { Rect memorySizeRect = new Rect(rect.x + rect.width - 60, rect.y, 60, rect.height); long memorySize = AssetDatabaseUtility.GetTextureStorageSize(assetObj as Texture); EditorGUI.LabelField(memorySizeRect, EditorUtility.FormatBytes(memorySize)); } }