public override void Drawing()
        {
            if (Parent.data == null)
            {
                EditorGUILayout.Separator();
                EditorGUILayout.BeginVertical("Box");
                EditorGUILayout.LabelField("AssetBundle Manager");
                bundleName = EditorGUILayout.TextField("BundleName:", bundleName);

                if (GUILayout.Button("Create"))
                {
                    if (bundleName == null || bundleName == "")
                    {
                        EditorUtility.DisplayDialog("Error", "Input BundleName", "ok");
                        EditorGUILayout.EndVertical();
                        return;
                    }
                    if (bundleName != "")
                    {
                        if (!Regex.IsMatch(bundleName, @"^[0-9a-zA-Z_]*$"))
                        {
                            EditorUtility.DisplayDialog("Error", "Input BundleName Can Only Include a-z A-Z 0-9 and _", "ok");
                            EditorGUILayout.EndVertical();
                            return;
                        }
                    }
                    // 创建
                    if (EditorUtility.DisplayDialog("Warning", "will Create AssetBundle Name is " + bundleName, "ok", "no"))
                    {
                        AssetBundleData data = new AssetBundleData();
                        data.BundleName = bundleName;
                        ResourceSetting.CheckAssetPath();
                        AssetDatabase.CreateAsset(data, ResourceSetting.GetSetAssetPath(data.BundleName));
                        AssetDatabase.Refresh();
                        Parent.data            = data;
                        Selection.activeObject = AssetDatabase.LoadAssetAtPath(ResourceSetting.SavePath(Parent.data.BundleName), typeof(UnityEngine.Object));
                        bundleName             = null;
                    }
                }
                if (GUILayout.Button("Import"))
                {
                    // 导入
                    string path = EditorUtility.OpenFilePanel("Load AssetBundleData", Application.dataPath + "/" + ResourceSetting.PATH, "asset");
                    if (path.Length != 0)
                    {
                        path = "Assets" + path.Replace(Application.dataPath, "");

                        Parent.data = AssetDatabase.LoadAssetAtPath(path, typeof(AssetBundleData)) as AssetBundleData;
                    }
                }

                EditorGUILayout.EndVertical();
                return;
            }
        }
        public override void Drawing()
        {
            if (Parent.data == null)
            {
                return;
            }
            //
            EditorGUILayout.Separator();
            EditorGUILayout.BeginVertical("Box");
            EditorGUILayout.LabelField("AssetBundle Manager");
            if (bundleName == null)
            {
                bundleName = Parent.data.BundleName;
            }
            if (outPutPath == null || outPutPath == "")
            {
                outPutPath = Parent.data.OutPutPath;
            }
            // 设置保存文件名字
            bundleName = EditorGUILayout.TextField("BundleName:", bundleName);
            // 设置输出目录
            outPutPath = EditorGUILayout.TextField("outPutPath:", outPutPath);

            // 绘制编译参数选择
            var optionvalues = Enum.GetValues(typeof(BuildAssetBundleOptions));
            int optiontmp    = 0;

            for (int i = 0; i < optionvalues.Length; ++i)
            {
                if (((int)Parent.data.assetBundleOptions & (int)optionvalues.GetValue(i)) != 0)
                {
                    optiontmp |= (1 << i);
                }
            }
            BuildAssetBundleOptions option = (BuildAssetBundleOptions)EditorGUILayout.EnumMaskField("BuildAssetBundleOptions", (BuildAssetBundleOptions)optiontmp);

            optiontmp = 0;
            for (int i = 0; i < optionvalues.Length; ++i)
            {
                if (((int)option & (1 << i)) != 0)
                {
                    optiontmp |= (int)optionvalues.GetValue(i);
                }
            }
            Parent.data.assetBundleOptions = (BuildAssetBundleOptions)optiontmp;

            // 选择输出平台
            Parent.data.targetPlatform = (BuildTarget)EditorGUILayout.EnumPopup("Platform", Parent.data.targetPlatform);

            // 渲染一个可滚动的List
            nameScrollPos = EditorGUILayout.BeginScrollView(nameScrollPos, GUILayout.Width(Parent.position.width - 12), GUILayout.Height(150));
            // assetbundle列表
            if (nameList == null)
            {
                // 加入数据数组
                nameList = new ReorderableList(Parent.data.AssetBunldeName, typeof(string[]), false, false, true, true);
            }

            // 绘制Item显示列表
            nameList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => {
                string element = nameList.list[index] as string;
                rect.y += 2;
                EditorGUI.LabelField(new Rect(rect.x, rect.y, 40, EditorGUIUtility.singleLineHeight), "Name:");
                nameList.list[index] = EditorGUI.TextField(new Rect(rect.x + 45, rect.y, rect.width - 45, EditorGUIUtility.singleLineHeight), element).ToLower();
            };
            // 绘制表头
            nameList.drawHeaderCallback = (Rect rect) => {
                EditorGUI.LabelField(rect, "AssetBundleList");
            };
            // 选择回调
            nameList.onSelectCallback = (ReorderableList l) =>
            {
                nameSelected = l.index;
            };
            nameList.onRemoveCallback = (ReorderableList l) => {
                l.list.RemoveAt(nameSelected);
                nameSelected = 0;
            };
            nameList.onAddCallback = (ReorderableList l) => {
                l.list.Add("");
            };

            //list.elementHeight = 60;
            nameList.DoLayoutList();
            EditorGUILayout.EndScrollView();
            checkName();

            // 渲染一个可滚动的List
            variantScrollPos = EditorGUILayout.BeginScrollView(variantScrollPos, GUILayout.Width(Parent.position.width - 12), GUILayout.Height(110));
            // assetbundle列表
            if (variantList == null)
            {
                // 加入数据数组
                variantList = new ReorderableList(Parent.data.Variants, typeof(string[]), false, false, true, true);
            }
            // 绘制Item显示列表
            variantList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => {
                string element = variantList.list[index] as string;
                rect.y += 2;
                EditorGUI.LabelField(new Rect(rect.x, rect.y, 40, EditorGUIUtility.singleLineHeight), "Name:");
                variantList.list[index] = EditorGUI.TextField(new Rect(rect.x + 45, rect.y, rect.width - 45, EditorGUIUtility.singleLineHeight), element).ToLower();
            };
            // 绘制表头
            variantList.drawHeaderCallback = (Rect rect) => {
                EditorGUI.LabelField(rect, "Variant List");
            };
            // 选择回调
            variantList.onSelectCallback = (ReorderableList l) =>
            {
                variantSelected = l.index;
            };
            variantList.onRemoveCallback = (ReorderableList l) => {
                if (variantSelected == 0)
                {
                    return;
                }
                l.list.RemoveAt(variantSelected);
                nameSelected = 0;
            };
            variantList.onAddCallback = (ReorderableList l) => {
                l.list.Add("");
            };
            //list.elementHeight = 60;
            variantList.DoLayoutList();
            EditorGUILayout.EndScrollView();
            checkVariant();

            // 保存配置按钮
            if (GUILayout.Button("Save As"))
            {
                if (checkName() || checkVariant())
                {
                    EditorGUILayout.EndVertical();
                    return;
                }
                if (EditorUtility.DisplayDialog("Warning", "will save AssetBundle SettingData is " + bundleName, "ok", "no"))
                {
                    showWindow(true);
                    // 将当前文件保存到指定目录
                    AssetBundleData data = Parent.data.Clone();
                    if (data.BundleName != bundleName)
                    {
                        data.BundleName = bundleName;
                    }
                    if (data.OutPutPath != outPutPath)
                    {
                        data.OutPutPath = outPutPath;
                    }
                    AssetDatabase.CreateAsset(data, ResourceSetting.GetSetAssetPath(bundleName));
                    AssetDatabase.Refresh();
                    Selection.activeObject = AssetDatabase.LoadAssetAtPath(ResourceSetting.SavePath(bundleName), typeof(UnityEngine.Object));
                    Parent.data            = data;
                }
            }

            if (GUILayout.Button("Editor Assets"))
            {
                showWindow();
            }

            if (GUILayout.Button("Build"))
            {
                string path = Utility.GetPlatformForAssetBundles(Parent.data.targetPlatform);
                ResourceSetting.CheckAssetPath(Application.dataPath + "/" + Parent.data.OutPutPath + "/" + path);

                BuildPipeline.BuildAssetBundles(Application.dataPath + "/" + Parent.data.OutPutPath + "/" + path, Parent.data.assetBundleOptions, Parent.data.targetPlatform);
            }

            if (GUILayout.Button("Return Main"))
            {
                showWindow(true);
                bundleName       = null;
                nameScrollPos    = Vector2.zero;
                variantScrollPos = Vector2.zero;
                nameList         = null;
                variantList      = null;
                nameSelected     = 0;
                variantSelected  = 0;
                Parent.data      = null;
            }

            EditorGUILayout.EndVertical();
        }