Assetbundle的各方面介绍,这里就不在赘述,网上搜搜就一大片。但是,是不是什么东西都能被打成Assetbundle呢?
基本上,引用到的资源,都能被打成Assetbundle。但是脚本和shader却不一样,虽然脚本和shader也能被导入Assetbundle。但是却不能把源文件导入(如果Assetbundle中存的是脚本的源文件,那也就没那么多热更新解决方案了)。最简单的验证方法,把一个项目的一个场景,导出Assetbundle,另一个项目读取这个Assetbundle运行。会发现资源都导入了,却没有执行的脚本。
因此,如果两个项目,想通过Assetbundle方式,来合并两个项目,那就必须把脚本也拷到要滚历茄被导入的项目中。两个项目脚本合并,难免出现重名的脚本,重名的类。为了解决这个,每个项目,定一个唯一的namespace。如果项目开始的时候就定好了,那还好办,如果后期合并,前期都没加过。那大察就只能自己写个Editor脚本,批量加上。
Unity项目中,难免使用一些全局的设置,比如,Physic重力设置,Tag和Layer这些。重力还好办,项目运行起来,还能通过脚本修改。但是Tag,Layer却不行。只能想办法进行合并。
Unity中,Tag只能通过string修改。但是,导成Assetbundle之后,其存储是index。所以要么在合并Tag的时候,要么批量修改,要么写个映射。当然,最好的方式是,项目统一用一套Tag。
Layer相比于Tag要简单许多,Layer可以通过int修改。Unity最大有32个Layer,即使你不添加Layer,也能通过修改Layer的index来使用。那么只要工程中定义全局使用的Layer即可
由于项目的资源都是Assetbundle,那么打包的时候,Unity会自动帮你精简项目。所以,Shader和脚本,就有可能被精简掉。
所以保险起见,吧项目中所有的Shader全部添加烂州到
Unity的脚本也得进行相应的设置
也就是说要使湖南“划境自保”,要争取者羡湖南首历拍人“自己处理自己的事的完全主权”,改变“长被侵夺于益我则少损我则多的中央或邻省”的状况,“建设一个烂闹湖南人所欲的湖南(理想的湖南新的湖南)”。1首先创建安卓工程,其中安卓工程岁李包名必须和unity包名一样虚衫2我这里导入的是高通的vuforia-unity-5-5-9.unitypackage,下面开始配置安卓工程将Vuforia.jar,VuforiaUnityPlayer.jar,还有unity安装文件下的Class.jar文件copy到Java工程下的lib文件夹下,还有替换安卓工程下的AndroidManifest,乎誉迟其中AndroidManifest会报错直接把错误删除,不用管。
3下面是我的MainActivity和AndroidManifest的配置,其中MainActivity继承UnityPlayerNativeActivity
把它的Activity换成你的MainActivity
到这里就可以到处Jar包了
还得把安卓的AndroidManifest重新复制到unity,替换原来的AndroidManifest
然后就可以在你的unity调用你的Java方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)