unity5 测试导出场景和光照贴图丢失的问题

来源:互联网 发布:js调用手机相册插件 编辑:程序博客网 时间:2024/04/30 16:38

实验步骤:

1.导出一个带光照贴图 和 Fog的场景的Assetbundle资源(依赖到的shader单独导出,PC平台)

2.在一个新的场景里加载上述导出的场景资源,查看 加载的场景是否有灯光和雾效果。


第一种导出场景的设置:


projectsetting -> graphicsetting 下的shader 剥离都设置为自动。

实验1:

在一个不含光照贴图和雾的空场景中导出资源,如下:


实验结果,光照贴图和雾效果均丢失。

实验2:

在上一次试验之后,导出的资源不删除,然后打开导出的带光照贴图和雾效果的场景,在该场景执行导出操作,发现没有资源导出,结果依旧是光照和雾均丢失。

实验3:

删除上一次导出的scene文件夹(存放shader以外的资源),然后打开打出的场景,在该场景执行导出操作,发现有资源导出,依旧是光照和雾均丢失。

实验4:

删除上一次导出的shader文件夹(存放shader以外的资源),然后打开打出的场景,在该场景执行导出操作,发现有资源导出,下载之后发现光照贴图和雾都好了。

实验5:

删除导出的所有资源,然后打开打出的场景,在该场景执行导出操作,发现有资源导出,下载之后发现光照贴图和雾都好了。

第二种导出场景的设置:

(lightmapmode fogmode 和需要导出的场景用到的模式一样)

实验6:

删除所有导出的资源,在一个不含光照贴图和雾的空场景中导出资源,下载之后发现光照贴图和雾都是好的。


实验结论:

当shader stripping(shader剥离)设置的是自动,如果你在空场景中导出场景资源,会导致导出的其他场景资源的光照贴图和雾丢失,只有打开你需要导出的场景,让unity识别到你当前用到的光照贴图和雾的模式,并且把之前导出的错误的shader资源删掉(依赖导出资源,值改设置无法让unity重新导出shader),unity才能重新正确的导出带光照贴图和雾的场景和shader资源。当shader stripping设置为手动,并且选择了需要导出的场景用到的模式后,那就不必关注在哪种场景中导出。这里只测试了shader剥离导致的shader丢失。




0 0