| using UnityEditor; | 
| using UnityEditor.IMGUI.Controls; | 
| using System.Collections.Generic; | 
| using System.IO; | 
| using System; | 
|   | 
| namespace UnityEngine.AssetBundles | 
| { | 
|     class SingleBundleInspector | 
|     { | 
|         public static string currentPath { get; set; } | 
|   | 
|   | 
|         public SingleBundleInspector() { } | 
|   | 
|         private Editor m_Editor = null; | 
|   | 
|         private Rect m_Position; | 
|   | 
|         [SerializeField] | 
|         private Vector2 m_ScrollPosition; | 
|   | 
|         public void SetBundle(AssetBundle bundle, string path = "") | 
|         { | 
|             //static var... | 
|             currentPath = path; | 
|   | 
|             //members | 
|             m_Editor = null; | 
|             if (bundle != null) | 
|                 m_Editor = Editor.CreateEditor(bundle); | 
|         } | 
|   | 
|         public void OnGUI(Rect pos) | 
|         { | 
|             if (m_Editor == null) | 
|                 return; | 
|   | 
|             m_Position = pos; | 
|   | 
|             DrawBundleData(); | 
|         } | 
|   | 
|         private void DrawBundleData() | 
|         { | 
|             GUILayout.BeginArea(m_Position); | 
|             m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); | 
|             m_Editor.OnInspectorGUI(); | 
|             EditorGUILayout.EndScrollView(); | 
|             GUILayout.EndArea(); | 
|         } | 
|     } | 
|   | 
|     [CustomEditor(typeof(AssetBundle))] | 
|     public class LevelScriptEditor : Editor | 
|     { | 
|         public override void OnInspectorGUI() | 
|         { | 
|             AssetBundle bundle = target as AssetBundle; | 
|   | 
|             using (new EditorGUI.DisabledScope(true)) | 
|             { | 
|                 var leftStyle = GUI.skin.GetStyle("Label"); | 
|                 leftStyle.alignment = TextAnchor.UpperLeft; | 
|                 GUILayout.Label(new GUIContent("Name: " + bundle.name), leftStyle); | 
|   | 
|                 long fileSize = -1; | 
|                 if(SingleBundleInspector.currentPath != string.Empty && File.Exists(SingleBundleInspector.currentPath) ) | 
|                 { | 
|                     System.IO.FileInfo fileInfo = new System.IO.FileInfo(SingleBundleInspector.currentPath); | 
|                     fileSize = fileInfo.Length; | 
|                 } | 
|   | 
|                 if (fileSize < 0) | 
|                     GUILayout.Label(new GUIContent("Size: unknown"), leftStyle); | 
|                 else | 
|                     GUILayout.Label(new GUIContent("Size: " + EditorUtility.FormatBytes(fileSize)), leftStyle); | 
|   | 
|             } | 
|   | 
|             base.OnInspectorGUI(); | 
|         } | 
|     } | 
| } |