(声明:本文章所有用到的图片和源码,只为了学习和研究用途,未经我同意,不得进行转载或者其他用途,推荐大家购买Unity正版源码)
Unity的Texture streaming,相信很多的同学都会开,为啥,省内存显存呗。但是在打包运行的时候,大家如果是development版本,就可能会看到有报错,类似async upload texture xxx
failed..cant find xxxx(具体的没去翻了,大致这样,反正碰到的人一眼就能看到)。为什么会报这个错呢?其实很多时候,大家可能一般的加载习惯都是如此,加载AB, load asset,
Instantiate 一个,然后可能没事情,就会Unload这个AB(或者自己做管理,做弱引用来释放)。
但是,texture streaming在实现过程中,它在miplevel要进行变化的时候(摄像机距离发生了变化),因为它streaming的意思,就是用到的时候去读取数据,所以它就会根据加载的时候的信息,去找它所在的那个AB去找它要的数据,然后它发现,Persistantmanager里面已经
没这个AB了,所以在底层它就返回了一个空的结构上去,上层发现是个空的,就会报这个错误出来。
但是如果是release版本,可能你看不到这个错误,但是其实就是,你这个物体的miplevel没法被切换,它就会始终用着那个mipmap在显示,不管远近。
大致是这么个意思。