Unity3d-Android花屏处理

public bool CameraEnable
    {
        get
        {
            return mainCamera.enabled;
        }
        set
        {
            mainCamera.clearFlags = CameraClearFlags.Skybox;
            mainCamera.backgroundColor = new Color(0F, 0F, 0F, 0.1F);
            mainCamera.enabled = value;
        }
    }

办法1:将当前要发布的场景另存为一场景文件,重新发布。办法2:在项目>品质中设置发布品质为fast,或者降低各项发布品质参数。办法3:在显卡设置中,设置成较老显卡所支持的一些渲染功能。

问题:在切换场景的时候,切换的一瞬间会出现花屏的现象。其实不仅仅是在切换场景的时候,在切换相机的时候也有可能出现花屏的现象。
问题原因:由于游戏渲染底层都是由OpenGL来绘制的。在Unity3d中Camera的作用其实就是OpenGL的作用,来绘制各种各样的图形。
所以,与Camera渲染问题相关的都应该是OpenGL的问题。
之所以出现花屏,是因为在切换相机的时候,相机清除颜色缓存的时候,没有提前赋给它一个确定的颜色值,导致相机颜色清除之后出现了一个随机or错误or动态的值。
总之,就是没有正确的清除相机的颜色缓存。
问题解决方法:
Unity3d中用camera.clearFlags,或者其他方式来清楚缓存 可能没有解决或者不太可靠。
所以,直接调用OpenGL的清除显示缓存的方法,强制清除颜色。
在Unity3d中,可以直接只用OpenGL,调用GL.
在切换相机前调用GL.Clear(false,true,Color.black);把openGL view颜色清空。
(具体GL.Clear()的参数意思参照Unity3d的文档)



p.s.之前搜过相关问题的解答,有位朋友说是模型加载过多的缘故,解决方法是控制了一下模型同时加载的数量。
这个方法我到时没有试。
因为花屏出现的情况跟我打包的apk也有关系。同样的代码,打两个包,有的有花屏,有的就没有。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值