using UnityEngine; using UnityEditor; [CustomEditor(typeof(AssetBundleUtility))] public class AssetBundleUtilityEditor : Editor { private string m_LoadAssetBundleName = "ui/texture"; private string m_LoadAssetName = "Button_Blue_A"; private string m_UnloadAssetBundleName = "ui/texture"; private bool m_UnloadLoadedObject = false; private bool m_IncludeDependenices = false; private string m_UnloadAssetName = "Button_Blue_A"; public override void OnInspectorGUI() { m_LoadAssetBundleName = EditorGUILayout.TextField("AssetBundle名称", m_LoadAssetBundleName); m_LoadAssetName = EditorGUILayout.TextField("Asset名称", m_LoadAssetName); GUILayout.BeginHorizontal(); if (GUILayout.Button("同步加载Asset")) { AssetBundleUtility.Instance.Sync_LoadAsset(m_LoadAssetBundleName, m_LoadAssetName); } if (GUILayout.Button("异步协程加载Asset")) { AssetBundleUtility.Instance.Co_LoadAsset(m_LoadAssetBundleName, m_LoadAssetName); } GUILayout.EndHorizontal(); GUILayout.Space(10); m_UnloadAssetBundleName = EditorGUILayout.TextField("AssetBundle名称", m_UnloadAssetBundleName); m_UnloadLoadedObject = GUILayout.Toggle(m_UnloadLoadedObject, "同时卸载引用资源"); m_IncludeDependenices = GUILayout.Toggle(m_IncludeDependenices, "同时卸载依赖包"); if (GUILayout.Button("卸载AssetBundle")) { AssetBundleUtility.Instance.UnloadAssetBundle(m_UnloadAssetBundleName, m_UnloadLoadedObject, m_IncludeDependenices); } GUILayout.Space(10); GUILayout.BeginHorizontal(); m_UnloadAssetName = EditorGUILayout.TextField("Asset名称", m_UnloadAssetName); if (GUILayout.Button("卸载Asset")) { AssetBundleUtility.Instance.UnloadAsset(m_UnloadAssetBundleName, m_UnloadAssetName); } GUILayout.EndHorizontal(); if (GUILayout.Button("卸载所有AssetBundle")) { AssetBundleUtility.Instance.UnloadAll(); } if (GUILayout.Button("调用Resources.UnloadUnUsed()")) { Resources.UnloadUnusedAssets(); } if (GUILayout.Button("调用System.GC.Collect()")) { System.GC.Collect(); } } }