返回介绍

Camera.OnPreCull() 消隐之前

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

Description 描述

OnPreCull is called before a camera culls the scene.

OnPreCull在相机开始裁剪场景之前调用。

Culling determines which objects are visible to the camera. OnPreCull is called just before this process. This message is sent to all scripts attached to the camera.

裁剪决定哪个物体对于相机来说是可见的。OnPreCull 仅仅在这个过程之间被调用,这个消息被发送到所有附加的相机的脚本。

If you want to change camera's viewing parameters (e.g. fieldOfView or just transform), this is the place to do it. Visibility of scene objects will be determined based on camera's parameters after OnPreCull.

如果你想改变相机的视觉参数(例如: fieldOfView 或者仅仅是变换),就在这里做这个,场景物体的可见性将基于相机的参数在OnPreCull 之后确定。

JavaScript:

	// Attach this to a camera. 附加这个到相机
	// Inverts the vie of the camera so everything rendered by it, is flipped
        //反转相机中的物体,因此每个被渲染的物体是反的
	// This will only work on  Unity - PRO仅工作在Unity专业版
 
	function OnPreCull () {
		camera.ResetWorldToCameraMatrix ();
		camera.ResetProjectionMatrix ();
		camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(Vector3 (1, -1, 1));
	}
	// Set it to true so we can watch the flipped Objects
	function OnPreRender () {
		GL.SetRevertBackfacing (true);
	}
 
	// Set it to false again because we dont want to affect all other cammeras.
	function OnPostRender () {
		GL.SetRevertBackfacing (false);
	}

C#:

using UnityEngine;
using System.Collections;
 
public class ExampleClass : MonoBehaviour {
    void OnPreCull() {
        camera.ResetWorldToCameraMatrix();
        camera.ResetProjectionMatrix();
        camera.projectionMatrix = camera.projectionMatrix * Matrix4x4.Scale(new Vector3(1, -1, 1));
    }
    void OnPreRender() {
        GL.SetRevertBackfacing(true);
    }
    void OnPostRender() {
        GL.SetRevertBackfacing(false);
    }
}

Camera

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

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

发布评论

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