如何从Unity3d摄像机捕获帧并将其实时显示在另一个rawImage上?

时间:2019-06-27 03:53:36

标签: unity3d camera rawimage

the results

我想从Unity3d虚拟摄像机捕获帧,然后将其显示在另一个原始图像上,结果是原始图像屏幕非常闪烁。

using UnityEngine;
using UnityEngine.UI;

public class RawImageVirtualWebCamTexture : MonoBehaviour
{
    private RawImage rawimage;

    void Start()
    {
        GameObject obj = GameObject.Find("RawImageTransform");
        rawimage = obj.GetComponent<RawImage>();
    }

    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        if (source != null)
        {
            rawimage.texture = source;
        }
        Graphics.Blit(source, destination);
    }
}

我想看光滑的图片。但是该怎么做?

1 个答案:

答案 0 :(得分:0)

如果是关于Unity Camera的,则不必捕获任何内容。

只需创建一个新的RenderTexture

Assets-> 右键单击-> Create-> RenderTexture

enter image description here

让您的Camera渲染到该RenderTexture中,而不是通过简单地引用RenderTexture中创建的Target Texture来渲染游戏视图(这使得Camera呈现给游戏视图,但呈现给引用的RenderTexture

enter image description here

,最后只需将创建的RenderTexture用作Texture的{​​{1}}

enter image description here


如果您需要RawImage同时渲染到正常的游戏视图,则只需在子对象上使用另一个Camera即可完成上述过程。

enter image description here


结果

enter image description here