/// <summary>
    /// Creates the asset bundle.
    /// </summary>
    /// <param name="isAll">If set to <c>true</c> is all.</param>
    /// <param name="target">Target.</param>
    static void CreateAssetBundle(bool isAll, BuildTarget target)
    {
        FileUtil.DeleteFileOrDirectory(Application.dataPath + "/StreamingAssets/");
        AssetDatabase.CreateFolder("Assets", "StreamingAssets");

        if (isAll)
        {
            AssetBundlePacker.CreateAssetBunldesALL(target);
        }
        else
        {
            AssetBundlePacker.CreateAssetBunldesMain(target);
        }
    }
示例#2
0
    private static void Build(BuildTarget build_target)
    {
        string platform             = AssetBundlePacker.GetPlatformForPackRes(build_target);
        string build_path           = "";
        string build_ExecutableFile = "";

        if (platform == "windows")
        {
            build_path           = Application.dataPath + "/../Build/" + platform + "/";
            build_ExecutableFile = build_path + "MechStorm.exe";
        }
        else if (platform == "osx")
        {
            build_path           = Application.dataPath + "/../Build/" + platform + "/";
            build_ExecutableFile = build_path + "MechStorm.app";
        }

        string[] levels =
        {
            "Assets/Scenes/FirstScene.unity",
            "Assets/Scenes/MainScene.unity",
            "Assets/Scenes/CardEditorScene.unity",
            "Assets/Scenes/StoryEditorScene.unity",
        };

        BuildOptions option_build = BuildOptions.CompressWithLz4;

        PlayerSettings.productName = "MechStorm";

        string res      = Application.dataPath + "/Resources/";
        string res_back = Application.dataPath + "/Resources_back/";

        string res_asset      = "Assets/Resources";
        string res_back_asset = "Assets/Resources_back";

        string ab_Windows = Application.streamingAssetsPath + "/AssetBundle/windows/";
        string ab_MacOS   = Application.streamingAssetsPath + "/AssetBundle/osx/";

        string ab_back         = Application.dataPath + "/StreamingAsset_back/AssetBundle/";
        string ab_Windows_back = Application.dataPath + "/StreamingAsset_back/AssetBundle/windows/";
        string ab_MacOS_back   = Application.dataPath + "/StreamingAsset_back/AssetBundle/osx/";

        if (Directory.Exists(ab_back))
        {
            Directory.Delete(ab_back, true);
        }

        Directory.CreateDirectory(ab_back);

        if (Directory.Exists(ab_Windows_back))
        {
            Directory.Delete(ab_Windows_back, true);
        }

        if (Directory.Exists(ab_MacOS_back))
        {
            Directory.Delete(ab_MacOS_back, true);
        }

        if (Directory.Exists(build_path))
        {
            Directory.Delete(build_path, true);
        }

        Directory.CreateDirectory(build_path);

        if (Directory.Exists(res_back))
        {
            Directory.Delete(res_back, true);
        }

        if (Directory.Exists(res))
        {
            if (Directory.Exists(res_back))
            {
                AssetDatabase.MoveAssetToTrash(res_back_asset);
            }

            string msg = AssetDatabase.MoveAsset(res_asset, res_back_asset);
            if (!string.IsNullOrEmpty(msg))
            {
                Debug.LogError(msg);
            }
        }

        if (build_target == BuildTarget.StandaloneWindows64)
        {
            if (Directory.Exists(ab_MacOS))
            {
                Directory.Move(ab_MacOS, ab_MacOS_back);
            }
        }
        else if (build_target == BuildTarget.StandaloneOSX)
        {
            if (Directory.Exists(ab_Windows))
            {
                Directory.Move(ab_Windows, ab_Windows_back);
            }
        }

        try
        {
            AssetDatabase.Refresh();
            AssetDatabase.SaveAssets();
            BuildPipeline.BuildPlayer(levels, build_ExecutableFile, build_target, option_build);
        }
        catch
        {
            // ignored
        }
        finally
        {
            if (Directory.Exists(res_back))
            {
                if (Directory.Exists(res))
                {
                    AssetDatabase.MoveAssetToTrash(res_asset);
                }

                string msg = AssetDatabase.MoveAsset(res_back_asset, res_asset);
                if (!string.IsNullOrEmpty(msg))
                {
                    Debug.LogError(msg);
                }
            }

            if (build_target == BuildTarget.StandaloneWindows64)
            {
                if (Directory.Exists(ab_MacOS_back))
                {
                    Directory.Move(ab_MacOS_back, ab_MacOS);
                }
            }
            else if (build_target == BuildTarget.StandaloneOSX)
            {
                if (Directory.Exists(ab_Windows_back))
                {
                    Directory.Move(ab_Windows_back, ab_Windows);
                }
            }
        }
    }
示例#3
0
 public static void Build_MacOS_PackBuild()
 {
     AssetBundlePacker.AssetBundlePacker_MacOS();
     Build(BuildTarget.StandaloneOSX);
 }
示例#4
0
 public static void Build_Windows_PackBuild()
 {
     AssetBundlePacker.AssetBundlePacker_StandaloneWindows();
     Build(BuildTarget.StandaloneWindows64);
 }
示例#5
0
    //绘制窗口时调用
    void OnGUI()
    {
        scroll_pos = EditorGUILayout.BeginScrollView(scroll_pos);
        //输入框控件
        GUILayout.Space(10);
        setting.appName = EditorGUILayout.TextField("项目名称:", setting.appName);
        GUILayout.Space(5);
        keystoreCnf.bundleIdentifier = EditorGUILayout.TextField("项目包名:", keystoreCnf.bundleIdentifier);
        GUILayout.Space(5);
        setting.version = EditorGUILayout.TextField("版本号:", setting.version);
        GUILayout.Space(5);
        GUILayout.BeginHorizontal();
        GUILayout.Space(5);
        GUILayout.Label("keystore", GUILayout.Width(146), GUILayout.Height(18f));
        GUILayout.Label(keystoreCnf.keystore, "HelpBox", GUILayout.Height(18f));
        if (GUILayout.Button(new GUIContent("浏览", "浏览文件夹")))
        {
            string path = EditorUtility.OpenFilePanel("keystore", keystoreCnf.keystore, "keystore");
            keystoreCnf.keystore = path.Replace(System.Environment.CurrentDirectory.Replace("\\", "/"), ".");
            SaveSetting();
            SaveKeystoreSetting();
        }
        GUILayout.EndHorizontal();
        GUILayout.Space(5);
        keystoreCnf.keypass = EditorGUILayout.TextField("keypass:"******"keyaliname:", keystoreCnf.keyaliname);
        GUILayout.Space(5);
        keystoreCnf.keyalipass = EditorGUILayout.TextField("keyalipass:"******"转配置"))
        {
            ConfigBuilder.BuildConfig();
        }

        if (GUILayout.Button("设置资源信息(AB名、SpriteTag)"))
        {
            AssetBundlePacker.SetResInfo();
        }

        if (GUILayout.Button("清理AssetBundle"))
        {
            AssetBundlePacker.ClearAssetBundleDirectory();
            SaveSetting();
        }

        if (GUILayout.Button("构建AssetBundle(差量更新)"))
        {
            AssetBundlePacker.BuildCurrentAssetBundle();
            SaveSetting();
        }

        if (GUILayout.Button("重新构建AssetBundle"))
        {
            AssetBundlePacker.ClearAssetBundleDirectory();
            AssetBundlePacker.BuildCurrentAssetBundle();
            SaveSetting();
        }

        if (GUILayout.Button("快速构建"))
        {
            SaveSetting();
            Build();
        }

        if (GUILayout.Button("切换平台并构建APK"))
        {
            AssetBundlePacker.BuildApk();
        }

        EditorGUILayout.EndScrollView();
    }
示例#6
0
 public static void PackTexture()
 {
     UnityEngine.Object[] objs = Selection.objects;
     AssetBundlePacker.PackTogether(objs);
 }
 private static void PackAssetBundle()
 {
     AssetBundlePacker.Pack();
 }
 static void BuildAndroidSplit()
 {
     AssetBundlePacker.CreateAssetBundle(false, BuildTarget.Android);
 }
 static void BuildMacOne()
 {
     AssetBundlePacker.CreateAssetBundle(true, BuildTarget.StandaloneOSX);
 }
 static void BuildMacSplit()
 {
     AssetBundlePacker.CreateAssetBundle(false, BuildTarget.StandaloneOSX);
 }
 static void BuildiOSOne()
 {
     AssetBundlePacker.CreateAssetBundle(true, BuildTarget.iOS);
 }
 static void BuildiOSSplit()
 {
     AssetBundlePacker.CreateAssetBundle(false, BuildTarget.iOS);
 }
 static void BuildAndroidOne()
 {
     AssetBundlePacker.CreateAssetBundle(true, BuildTarget.Android);
 }