首页 > 其他分享 >Unity RenderTexture 当作为 Camera.targetTexture 时,在某些安卓手机或模拟器无法显示或出现错乱 以及粒子无法正常显示

Unity RenderTexture 当作为 Camera.targetTexture 时,在某些安卓手机或模拟器无法显示或出现错乱 以及粒子无法正常显示

时间:2023-08-28 12:22:18浏览次数:37  
标签:CameraClearFlags RenderTexture 安卓 Unity Camera cam SolidColor renderTexture

今天打包的时候遇到一个坑,就是用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

相关文章

  • flutter使用腾讯IM插件tencent_cloud_chat_sdk打安卓报“从内部类中访问本地变量param
    使用tencent_cloud_chat_sdk5.2.0版本打包安卓flutterbuildapk报以下错误/Users/tanglin/Documents/flutter/.pub-cache/hosted/pub.flutter-io.cn/tencent_cloud_chat_sdk-5.2.0/android/src/main/java/com/qq/qcloud/tencent_im_sdk_plugin/util/CommonUtil.java:401:错误:......
  • Unity3d 保存相机拍摄图像
    ///<summary>///生成相机照片并保存///</summary>///<paramname="PhotographyCamera">相机</param>///<paramname="imageMateData">图像宽高</param>publicvoidCreateCameraCaptureAndSaveLocal(CameraPhotographyCa......
  • Unity 中删除本地指定文件或文件夹
    voidStart(){//DeleteOldImages("E:\\AerialImages\\2023_08_24_15_57");DeleteDirectory("E:\\AerialImages\\2023_08_24_15_57");}///<summary>///删除指定文件夹下文件///</summary>///<paramname="fullDirP......
  • Unity 2D如何让背景图片拉伸填满整个窗口
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;[RequireComponent(typeof(SpriteRenderer))]publicclassSpriteFullScreen:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){......
  • Unity 写入本地文本文件
    voidStart(){WriteLocalFile("E:\\Test.txt","唯一能赢我的人叫做,我从来没听说过,另一个叫做,我想想,哎,节目效果");}///<summary>///写入本地文件txt,json等文件///</summary>///<paramname="path">路径</param>///<paramname=......
  • 安卓主板定制_电磁屏/电容屏安卓平板基于MTK联发科方案定制
    定制化行业平板在各行各业中的地位越来越重要,甚至在行业转型和发展中发挥着不可替代的作用。随着工业化社会的快速发展,工业生产对智控设备要求越来越高,运用的范畴也越来越普遍广泛,工业级平板就是其中一种应用广泛的设备。新移科技专注于行业安卓平板定制开发,联发科紫光展锐高通......
  • 升级到DBeaver Community 23.1.5 部分汉化失效解决
    升级到DBeaver到23.1.5之后部分中文有不能显示了,虽然也不影响什么但是对于我这个轻微强迫症还是希望能全部汉化。一个网友告诉我不是DBeaver本身汉化部分的问题,是Eclipse本身汉化部分没有安装的问题更新到23.1.5之后手动安装一下babel汉化  下面是babel地址: h......
  • MT8183|MTK8183核心板 联发科MTK安卓核心板规格参数
    MT8183核心板集成了一个八核CPU,其中包括四个主频高达2GHz的ArmCortex-A73和Cortex-A53MPCoreTM,以及一个主频800MHz的功能强大的ArmMali-G72级图形处理器。这些处理器提供了支持最新的操作系统和苛刻应用程序所需的处理能力,如Web浏览、电子邮件、应用程序和服务、全球导航......
  • 安卓 adb常用命令
    什么是adb:adb是PC电脑与android手机进行通信操作的工具软件,类似于Xshell可以通过windows访问操作Linux如何安装adb软件(环境):下载adb绿色免安装版什么是adbshell:切换进入Linux内核的命令行界面(android的底层使用的是Linux内核,所以切换进入Linux内核命令行界面后,可以使用Lin......
  • fiddler抓包手机端HTTPS协议:安卓或鸿蒙端-小程序/APP
    问题描述:fiddler抓包安卓或者鸿蒙端的HTTPS协议时,fiddler日志报错:AuthenticationException调用SSPI失败;访问app时提示:Trustanchorforcertificationnotfound原因:    1)安卓端下载使用了fiddler自带的HTTPS证书,导致与手机版本不兼容    2)andriod7以后,用户......