Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }