最近遇到一个很尴尬的问题,iPhone 6,iPhone 5s及iPad Air 2这些设备里(其他设备没有= =),unity生成的ipa中,有些相机没有被渲染。
其实网上找了一圈基本上很多人也遇到这个问题了,应该是6以后有了重大的渲染API的更新,导致6及6以前的设备不支持。
我这边使用了UGUI,UI显示的方案是Screen Space - Camera,UI相机为投影相机,Clear Flags:Depth Only。
在主城中,只有一个UI相机和一个3D相机拍摄主城和3D角色的时候是完全正常的。
但是角色界面中,UI相机正常,一个拍摄背景的正交相机,Clear Flags: Depth ony和拍摄角色的相机没有被正确渲染。
经过无数次尝试和打包之后,发现第一行提到的那几个设备不支持Metal,所以把Auto Graphics API去掉,然后把Metal去掉,换成OpenGLES3,这个玩意不支持Color Space的Linear,所以要把Color Space换成Gamma,但是这会导致一些新的渲染方式不能被使用,所以要跟技术美术沟通好,某些计算需要他们自己在Shader中进行。
具体设置File -> Build Settings -> Player Settings ->Other Settings ->不选 Auto Graphics API, Graphics APIs 只选OpenGLES3(iPhone 5应该选2吧,貌似不支持3),Color Space* 选Gamma
剩下的请交给技术美术
这个问题老外有好多遇到的,但是好像没有搜到中文的解决方案吧,没准以后能看到不是么
p.s. Linear 必须用Metal,如果不用会屏幕全黑啥也看不到。iPhone 6s及以上设备可以直接使用Metal + Linear
上面说的不渲染就是毛都没有一条,也不会黑屏,会渲染出来一些莫名其妙的残留。
以上设备的iOS最低版本也是9.2,所以以下的操作系统版本没有测试过。Unity 版本2017.2