返回介绍

Camera.Render 渲染

发布于 2019-12-18 15:37:28 字数 2663 浏览 1433 评论 0 收藏 0

JavaScript => Render(): void;
C# => void Render();

Description 描述

Render the camera manually.

手动渲染相机。

This will render the camera. It will use the camera's clear flags, target texture and all other settings.

这个将渲染相机,这将使用相机的清除标记,目标纹理和所有其它设置。

The camera will send OnPreCull, OnPreRender & OnPostRender to any scripts attached, and render any eventual image filters.

相机将发送OnPreCull, OnPreRender & OnPostRender到任何附加的脚本上,并渲染任何最后的图像滤镜。

This is used for taking precise control of render order. To make use of this feature, create a camera and disable it. Then call Render on it.

这个用来精确地控制渲染次序,为了使用这个特性,创建一个相机并禁用它,然后在它上面调用Render。

You are not able to call the Render function from a camera that is currently rendering. If you wish to do this create a copy of the camera, and make it match the original one using CopyFrom. 从一个正在渲染的相机调用Render 函数是不允许的,如果你想这样做先创建一个相匹配相机的副本。

JavaScript:

	// Take a "screenshot" of a camera's Render Texture.
	function RTImage(cam: Camera) {
		// The Render Texture in RenderTexture.active is the one
		// that will be read by ReadPixels.
		var currentRT = RenderTexture.active;
		RenderTexture.active = cam.targetTexture;
 
		// Render the camera's view.
		cam.Render();
 
		// Make a new texture and read the active Render Texture into it.
		var image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height);
		image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0);
		image.Apply();
 
		// Replace the original active Render Texture.
		RenderTexture.active = currentRT;
		return image;
	}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    Texture2D RTImage(Camera cam) {
        RenderTexture currentRT = RenderTexture.active;
        RenderTexture.active = cam.targetTexture;
        cam.Render();
        Texture2D image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height);
        image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0);
        image.Apply();
        RenderTexture.active = currentRT;
        return image;
    }
}

Camera

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文