Unity RenderTexture 當作為 Camera.targetTexture 時,在某些安卓手機或模擬器無法顯示或出現錯亂


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM