今天打包的时候遇到一个坑,就是用
RenderTexture的时候,在某些手机上会显示黑屏,一查发现这是某些安卓设备才会出现的BUG(奇怪的是那台测试机是鸿蒙系统,懂的都懂)
解决方法也很简单,就是不能用
RenderTexture资源,而改成动态代码创建即可解决这个BUG
同时解决了另一个
RenderTexture的BUG,就是用RT的时候,Camera里的粒子物体,在RT上显示不正常,解决方法,例子的材质改成用 Moblile/Particels/Additive
using UnityEngine; using UnityEngine.UI; public class Test:MonoBehaviour{ public RawImage rawImage; public Camera cam; private RenderTexture m_renderTexture; private void Start(){ m_renderTexture=new RenderTexture(512,512,16,RenderTextureFormat.ARGB32); rawImage.texture=m_renderTexture; cam.targetTexture=m_renderTexture; //必须为 CameraClearFlags.SolidColor或CameraClearFlags.Depth,CameraClearFlags.Nothing 时会不显示 cam.clearFlags=CameraClearFlags.SolidColor; //CameraClearFlags.SolidColor时会有背景色,需要设置背景色透明 Color color=cam.backgroundColor; color.a=0f; cam.backgroundColor=color; } }
- 注意:Camera.clearFlags 必须为 CameraClearFlags.SolidColor或CameraClearFlags.Depth,CameraClearFlags.Nothing 时会不显示
CameraClearFlags.SolidColor:会有背景色,需要设置Camera背景色为透明
CameraClearFlags.Depth:不会清除上一次渲染的内容,会出现重叠花屏 - 使用以上方法将粒子系统制作的特效显示在 UI 时,需要注意粒子系统 Renderer 栏下的 Material、TrailMaterial 使用的 Shader ,在 Unity2019.4.28f1c1 使用 Legacy Shaders/Particels/Additive 的粒子特效无法实现背景透明,改成 Moblile/Particels/Additive
原文地址:https://www.cnblogs.com/kingBook/p/14160483.html
标签:CameraClearFlags,RenderTexture,安卓,Unity,Camera,cam,SolidColor,renderTexture From: https://www.cnblogs.com/jeason1997/p/17661990.html