版本:Unity 6 (6000.0)
语言英语
  • C#

GL.Viewport

提出更改建议

操作成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交内容,但我们会阅读用户提出的每条建议变更,并在适用时进行更新。

关闭

提交失败

由于某些原因,无法提交您建议的更改。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static void Viewport(Rect pixelRect);

说明

设置渲染视口。

所有渲染仅限于在传递的 pixelRect 中。如果修改视口,则其中所有已渲染的内容会进行拉伸。

using UnityEngine;

public class Example : MonoBehaviour { // Draw a red Quad that covers all the view port, and the when space is pressed // the viewport gets expanded to the whole screen and stretch the contents inside Material mat; bool stretch = false;

void Update() { if (Input.GetKeyDown(KeyCode.Space)) { if (stretch) { stretch = false; } else { stretch = true; } } }

void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadPixelMatrix(); if (stretch) { GL.Viewport(new Rect(0, 0, Screen.width, Screen.height)); } else { GL.Viewport(new Rect(0, 0, Screen.width / 2, Screen.height)); } GL.Color(Color.red); GL.Begin(GL.QUADS); GL.Vertex3(0, 0, 0); GL.Vertex3(0, Screen.height, 0); GL.Vertex3(Screen.width, Screen.height, 0); GL.Vertex3(Screen.width, 0, 0); GL.Color(Color.yellow); GL.End(); GL.Begin(GL.TRIANGLES); GL.Vertex3(Screen.width / 2, Screen.height / 4, 1); GL.Vertex3(Screen.width / 4, Screen.height / 2, 1); GL.Vertex3(Screen.width - Screen.width / 4, Screen.height / 2, 1); GL.End(); GL.PopMatrix(); } }