//using System;
//using System.IO;
//using UnityEditor;
//using UnityEngine;
//using Object = UnityEngine.Object;

//namespace XGame.Editor.Build.AssetBundles
//{
//    public class ABPackerInfoEditor
//    {
//        private Object asset;

//        public long PackerId { get; private set; }
//        public ABPackerType PackerType { get; private set; }

//        public string AssetGUID
//        {
//            get
//            {
//                if (asset != null)
//                {
//                    var assetPath = AssetDatabase.GetAssetPath(asset);
//                    return AssetDatabase.AssetPathToGUID(assetPath);
//                }
//                return string.Empty;

//            }
//        }
//        public bool IsInspector { set; get; }

//        /// <summary>
//        /// 删除的监听事件
//        /// </summary>
//        private event Action<long> onDelete;
//        public event Action<long> OnDelete
//        {
//            add => onDelete += value;
//            remove => onDelete -= value;
//        }

//        public ABPackerInfoEditor(ABPackerInfo info)
//        {
//            PackerId = info.packerId;
//            PackerType = info.packerType;
//            asset = AssetDatabase.LoadMainAssetAtPath(info.AssetPath);
//        }

//        public void OnGUI()
//        {
//            if (IsInspector)
//            {
//                EditorGUILayout.BeginVertical("Box");
//            }
//            else
//            {
//                EditorGUILayout.BeginHorizontal("Box");
//            }
//            DrawAsset();
//            DrawButtons();
//            if (IsInspector)
//            {
//                EditorGUILayout.EndVertical();
//            }
//            else
//            {
//                EditorGUILayout.EndHorizontal();
//            }
//        }

//        private readonly GUIContent assetContent = new GUIContent("Asset", "资源或者文件夹，只能选择Res/Addressable目录下的资源");
//        private readonly GUIContent packerTypeContent = new GUIContent("Packer Type", "打包分类 \r\nTopDirectoryOnly：默认方式，当前目录的资源(不包含子目录)打一个包 \r\nAllDirectories：当前目录及子目录的资源打一个包 \r\nSingleAsset：单个资源打包");

//        private void DrawAsset()
//        {
//            var lastAsset = asset;
//            asset = EditorGUILayout.ObjectField(assetContent, asset, typeof(Object), false);
//            var assetPath = AssetDatabase.GetAssetPath(asset);
//            if (!string.IsNullOrEmpty(assetPath))
//            {
//                if (!AssetBundleHelper.IsValidPath(assetPath))
//                //if (FileUtil.IsFileIgnore(assetPath) || !assetPath.StartsWith(FileUtil.ToRelativePath(PathDefine.ResAddressablePath)))
//                {
//                    Debug.LogError($"选择了错误的资源或文件夹，只能选择Res/Addressable目录下的资源. Path:{assetPath}");
//                    asset = lastAsset;
//                    assetPath = AssetDatabase.GetAssetPath(asset);
//                }
//            }
//            var isFile = (!string.IsNullOrEmpty(assetPath) && File.Exists(assetPath));
//            if (isFile)
//            {
//                PackerType = ABPackerType.SingleAsset;
//                EditorGUI.BeginDisabledGroup(true);
//            }
//            PackerType = (ABPackerType)EditorGUILayout.EnumPopup(packerTypeContent, PackerType);
//            if (isFile)
//            {
//                EditorGUI.EndDisabledGroup();
//            }
//        }

//        private void DrawButtons()
//        {
//            bool isDelete = GUILayout.Button("Delete", GUILayout.Width(60));
//            if (isDelete)
//            {
//                //删除
//                onDelete?.Invoke(PackerId);
//            }
//        }
//    }

//}
