返回介绍

MonoBehaviour.OnPreCull() 当消隐之前

发布于 2019-12-18 15:38:03 字数 2182 浏览 1019 评论 0 收藏 0

Description 描述

OnPreCull is called before a camera culls the scene.

在相机消隐场景之前被调用。

Culling determines which objects are visible to the camera. OnPreCull is called just before this process.

消隐决定哪个物体对于相机来说是可见的.OnPreCull仅是在这个过程被调用。

This function is called only if the script is attached to the camera and is enabled.

只有脚本被附加到相机上时才会调用这个函数。

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或者transform),可以在这里做这些。场景物体的可见性将根据相机的参数在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
 
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 don't want to affect all other cameras.
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);
    }
}

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

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

发布评论

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