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