C# 如何在实例化的摄影机上应用渲染纹理(作为目标纹理)?

C# 如何在实例化的摄影机上应用渲染纹理(作为目标纹理)?,c#,android,unity3d,unity5,instantiation,C#,Android,Unity3d,Unity5,Instantiation,我有一个相机预置,我在不同的位置实例化了4次,我想在其中添加渲染纹理(作为目标纹理),这样我就可以使用相同的纹理并应用到一个平面上,以便在其中一个场景中进行监控。如果不清楚,请询问。我正试图进行监控,但不知道如何做到这一点,我被困在这一点。请提前举例表示感谢 我认为unity手册对此解释得很好 更具体地说,这里有一个可能的实现: 在AssetFolder中创建一些渲染器,然后将它们链接到摄影机脚本以进行渲染。将此文件添加到Texturender相机 using System.Collection

我有一个相机预置,我在不同的位置实例化了4次,我想在其中添加渲染纹理(作为目标纹理),这样我就可以使用相同的纹理并应用到一个平面上,以便在其中一个场景中进行监控。如果不清楚,请询问。我正试图进行监控,但不知道如何做到这一点,我被困在这一点。请提前举例表示感谢

我认为unity手册对此解释得很好

更具体地说,这里有一个可能的实现:

在AssetFolder中创建一些渲染器,然后将它们链接到摄影机脚本以进行渲染。将此文件添加到Texturender相机

using System.Collections;
using UnityEngine;

public class Camera2Texture : MonoBehaviour {

public RenderTexture[] renderTextures;
private Camera cam;

private void Awake()
{
    cam = GetComponent<Camera>();
}

private void Start()
{
    StartCoroutine(RenderTexturesCoroutine());
}

IEnumerator RenderTexturesCoroutine()
{
    for (int i = 0; i < renderTextures.Length; i++)
    {
        // just move the camera a little bit and focus the center of the scene
        this.transform.position += Vector3.left * 2 * i;
        cam.transform.LookAt(Vector3.zero);

        cam.targetTexture = renderTextures[i];
        yield return new WaitForSeconds(1f);
        cam.Render();
    }

    cam.targetTexture = null;
    this.gameObject.SetActive(false);
}
}
使用系统集合;
使用UnityEngine;
公共类摄像机2结构:单一行为{
公共渲染器[]渲染器;
私人摄像机;
私人空间
{
cam=GetComponent();
}
私有void Start()
{
start例程(rendertextrescoroutine());
}
IEnumerator RenderTexturesCoroutine()
{
对于(int i=0;i

我启动了一个协同程序,它每秒移动我的Texturender相机一点,放入阵列中的下一个RenderTexture并渲染图像。最后我禁用了相机。这就是将所有4个渲染器放在四边形上的结果:

谢谢您的回复。摄影机是从预制件实例化的。如何将渲染纹理获取到实例化的摄影机并应用到曲面上进行查看。您只需将渲染纹理添加到资源窗口中的摄影机预制(附带上述脚本)中即可。实例化预置时,它会引用渲染器资源。要显示渲染器,只需添加一个四边形(或其他东西)并在其上拖动渲染器即可更改其材质。摄影机渲染后,可以在四边形上看到纹理。