示例#1
0
        private void OnGUI()
        {
            if (GUILayout.Button(IsEnglish ? "切换为中文" : "Switch to English"))
            {
                IsEnglish = !IsEnglish;
                EditorPrefs.SetBool("BundleBuilderToolLanguage", IsEnglish);
            }
            EditorGUILayout.Space();

            EditorGUILayout.LabelField(IsEnglish ? "Introduction:" : "说明:");
            EditorGUILayout.LabelField(IsEnglish ? "Build assetbundles by using Unity's assetbundle build settings" : "简单打包AssetBundle");
            EditorGUILayout.LabelField(IsEnglish ? "You need to assign each asset a assetbundle name in Unity Editor before you use this tool" : "使用前需要在Unity中为Asset设置好AssetBundle标签");

            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            m_buildPath = EditorGUILayout.TextField(IsEnglish ? "Bundle Export Path" : "Bundle包导出路径", m_buildPath);
            if (GUILayout.Button(IsEnglish ? "Browse" : "浏览"))
            {
                string dir = EditorUtility.OpenFolderPanel(IsEnglish ? "Choose Export Path" : "选择导出目录", "", "");
                if (!string.IsNullOrEmpty(dir))
                {
                    m_buildPath = dir;
                }
            }
            EditorGUILayout.EndHorizontal();
            m_buildTarget = (BundleBuildTarget)EditorGUILayout.EnumPopup(IsEnglish ? "Build Platform" : "导出平台", m_buildTarget);

            EditorGUILayout.Space();

            if (GUILayout.Button(IsEnglish ? "Start Building" : "打包"))
            {
                AssetsBundleBuilder.BuildAssetBundles(m_buildPath, m_buildTarget);
            }
        }
        public static void BuildAssetBundles(string buildPath, BundleBuildTarget bundleBuildTarget, BundleBuildSettings settings = null)
        {
            BuildTarget buildTarget = BuildTarget.NoTarget;

            switch (bundleBuildTarget)
            {
            case BundleBuildTarget.Android:
                buildTarget = BuildTarget.Android;
                break;

            case BundleBuildTarget.iOS:
                buildTarget = BuildTarget.iOS;
                break;

            case BundleBuildTarget.Windows:
                buildTarget = BuildTarget.StandaloneWindows;
                break;
            }

            createAssetBundle(buildPath, buildTarget, settings);
            createAssetsInfo(buildPath);
        }
示例#3
0
        private void OnGUI()
        {
            if (GUILayout.Button(IsEnglish ? "切换为中文" : "Switch to English"))
            {
                IsEnglish = !IsEnglish;
                EditorPrefs.SetBool("BundleBuilderToolLanguage", IsEnglish);
            }
            EditorGUILayout.Space();

            EditorGUILayout.LabelField(IsEnglish ? "Introduction:" : "说明:");
            EditorGUILayout.LabelField(IsEnglish ? "Build assetbundles by using custom assetbundle build settings" : "自定义打包AssetBundle");
            EditorGUILayout.LabelField(IsEnglish ? "Custom assetbundle build settings allows you choose a directory, and build files in that directory into assetbundle." : "不使用Unity为Asset设置的AssetBundle标签");
            EditorGUILayout.LabelField(IsEnglish ? "Custom bundle builder will ignore the assetbundle settings you set in Unity Editor" : "采用遍历文件夹的方式决定将哪些Asset打到哪个bundle里");

            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(IsEnglish ? "Bundle Count" : "Bundle数量", m_settings.BundleCount.ToString());
            if (GUILayout.Button(IsEnglish ? "Add Bundle" : "添加"))
            {
                m_settings.AddItem();
            }
            EditorGUILayout.EndHorizontal();

            m_scrollPos = EditorGUILayout.BeginScrollView(m_scrollPos, GUILayout.Height(400));
            if (m_settings.BuildItems != null)
            {
                int deleteIndex = -1;
                for (int i = 0; i < m_settings.BuildItems.Length; i++)
                {
                    var item = m_settings.BuildItems[i];
                    EditorGUILayout.BeginHorizontal("box");
                    EditorGUILayout.BeginVertical();
                    item.Name = EditorGUILayout.TextField("BundleName", item.Name);
                    EditorGUILayout.BeginHorizontal();
                    item.RootPath = EditorGUILayout.TextField("RootPath", item.RootPath);
                    if (GUILayout.Button(IsEnglish ? "Browse" : "浏览"))
                    {
                        string dir = EditorUtility.OpenFolderPanel(IsEnglish ? "Choose Bundle Resource Root Path" : "选择Bundle资源根目录", Application.dataPath, "");
                        if (!string.IsNullOrEmpty(dir))
                        {
                            if (dir.StartsWith(Application.dataPath))
                            {
                                item.RootPath = "Assets" + dir.Substring(Application.dataPath.Length);
                            }
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                    item.DrawIncludeExt(IsEnglish);
                    EditorGUILayout.Space();
                    item.DrawExcludeExt(IsEnglish);
                    EditorGUILayout.Space();
                    item.DrawExcludeDir(IsEnglish);
                    EditorGUILayout.Space();
                    EditorGUILayout.EndVertical();
                    if (GUILayout.Button(IsEnglish ? "Delete" : "删除"))
                    {
                        deleteIndex = i;
                    }
                    EditorGUILayout.EndHorizontal();
                }
                if (deleteIndex != -1)
                {
                    m_settings.DeleteItem(deleteIndex);
                    deleteIndex = -1;
                }
            }
            EditorGUILayout.EndScrollView();

            EditorGUILayout.Space();

            if (GUILayout.Button(IsEnglish ? "Save Build Settings" : "保存配置"))
            {
                SaveConfig();
            }

            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            m_buildPath = EditorGUILayout.TextField(IsEnglish ? "Bundle Export Path" : "Bundle包导出路径", m_buildPath);
            if (GUILayout.Button(IsEnglish ? "Browse" : "浏览"))
            {
                string dir = EditorUtility.OpenFolderPanel(IsEnglish ? "Choose Export Path" : "选择导出目录", "", "");
                if (!string.IsNullOrEmpty(dir))
                {
                    m_buildPath = dir;
                }
            }
            EditorGUILayout.EndHorizontal();
            m_buildTarget = (BundleBuildTarget)EditorGUILayout.EnumPopup(IsEnglish ? "Build Platform" : "导出平台", m_buildTarget);

            EditorGUILayout.Space();

            if (GUILayout.Button(IsEnglish ? "Start Building" : "打包"))
            {
                AssetsBundleBuilder.BuildAssetBundles(m_buildPath, m_buildTarget, m_settings);
            }
        }