unity 5 Assetbundle 打包 scene 工具

这段时间项目用到场景的动态加载,网上一查有挺多的,但很杂乱。有的版本太老,有的功能太少。

所谓自己动手丰衣足食。然后就自己写了一个能打包多平台的小工具。

可以打包多平台。在unity5.4上面亲测可行,有时候打包完会出一个错误,那个没关系,不影响使用,应该是写工具的时候哪里没写好。如果你发现了,麻烦你帮我指出来喽。

废话不多说。

using UnityEngine;
using UnityEditor;
using System.IO;
/// <summary>
/// 脚本位置:Editor文件夹下
/// 脚本功能:打包scenes
/// </summary>
public class BuildAssetBundleScene : EditorWindow
{
    private Scenesbuild msb;
    // 打包unity场景文件
    [MenuItem("Assets/Build AssetBundle Scene")]
    public static void ShowWindow() {

        EditorWindow.GetWindow(typeof(BuildAssetBundleScene), true, " 场景打包");
    }

    void OnGUI() {
        EditorGUILayout.BeginVertical();
        GUILayout.Label("平台选择", EditorStyles.boldLabel);
        msb = (Scenesbuild)EditorGUILayout.EnumPopup(msb);
        GUILayout.Label("打包", EditorStyles.boldLabel);
        if (GUILayout.Button("打包", EditorStyles.miniButton)) {

            BuildScenes();

        }
        EditorGUILayout.EndVertical();
    }


    public enum Scenesbuild
    {
        Window,
        Ios,
        Android,
        Window64,
    }
    void BuildScenes() {
        BuildTarget mtarget;
        string filepath;
        switch (msb)
        {
            case Scenesbuild.Android:
                mtarget = BuildTarget.Android;
                filepath = "/Android";
                break;
            case Scenesbuild.Ios:
                mtarget = BuildTarget.iOS;
                filepath = "/Ios";
                break;
            case Scenesbuild.Window:
                mtarget = BuildTarget.StandaloneWindows;
                filepath = "/Window";
                break;
            case Scenesbuild.Window64:
                mtarget = BuildTarget.StandaloneWindows64;
                filepath = "/Window64";
                break;
            default:
                mtarget = BuildTarget.StandaloneWindows64;
                filepath = "/Window64";
                break;
        }
        // 需要打包的场景名字
        string scenename = Application.loadedLevelName;
        string[] levels = { "Assets/" + scenename + ".unity" };

        string out_path = Application.dataPath + "/unity3d"+filepath;
        if (!Directory.Exists(out_path))
        {

            Directory.CreateDirectory(out_path);
        }

        BuildPipeline.BuildPlayer(levels,out_path+"/" + scenename + ".unity3d", mtarget, BuildOptions.BuildAdditionalStreamedScenes);
        // 刷新,可以直接在Unity工程中看见打包后的文件
        AssetDatabase.Refresh();


    }


}

还需要加载的话。都在这里快来拿吧。

链接:http://pan.baidu.com/s/1nvrpcE1 密码:js8a

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值