Unity制作游戏AB包
需要注意的是在游戏场景运行的情况下,不能编译AB包,不运行的情况下编译AB包需要使用Unity的扩展菜单功能,首先需要建立菜单用来编译AB包。
1、建立AB包的名字,首先选中需要创建包的素材文件,然后在Inspector面板的最下方有一个两条横线,
把鼠标悬浮到横线上,鼠标向上拖动最下方就会出现AssetBundle的选项,
选择中间的选项,点击New创建AB包的名字即可
建立菜单:此脚本需要继承Editor类,并且引用Editor命名空间,凡是继承Editor类的脚本必须放到项目Editor文件夹下。
1、 创建菜单使用编辑器扩展功能,只需要在静态方法前加上[MenuItem(菜单目录)]就可以在菜单列表创建一个自定义名字的菜单。
[MenuItem("打包/AB")] static void ABTest() { Debug.Log("开始AB包"); BuildPipeline.BuildAssetBundles("Assets/Prefabs", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64); }
AB包创建完成之后,只需要在创建出来的文件中找到跟你设置的AB包名字一样的文件,上传到Web服务器,并且能够根据链接下载就行。
2、接下来只需要使用Unity的WWW网络类下载就可以了,下载之后就可以使用了。
1 void Start() 2 { StartCoroutine(GetCube()); } 3 IEnumerator GetCube() 4 { 5 WWW w = new WWW("http://192.168.0.105/cube"); 6 yield return w; 7 if (w.isDone) 8 { 9 AssetBundle ab = w.assetBundle; 10 GameObject ga = ab.LoadAsset<GameObject>("Assets/Prefabs/Cube.prefab"); 11 ga = Instantiate(ga); 12 } 13 }