GL.QUADS 四边形

static var QUADS : int

Description描述

Mode for Begin: draw quads.

Begin模式开始后,然后绘制四边形。

If you want to draw something 2D in screen space then probably you will want to use GL.LoadOrtho or GL.LoadPixelMatrix.

如果在场景中画2D对象,你可能要用到GL.LoadOrtho 或 GL.LoadPixelMatrix函数。

If you want something in "3D", then probably you should consider using GL.LoadIdentity followed by GL.MultMatrix with the actual 3D transform you want your stuff to be in.

如果在场景中画3D对象,你可能要用到GL.LoadIdentity 或 GL.MultMatrix函数进行3D变换。

参见:GL.Begin, GL.End.

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	public Material mat;
	void OnPostRender() {
		if (!mat) {
			Debug.LogError("Please Assign a material on the inspector");
			return;
		}
		GL.PushMatrix();
		mat.SetPass(0);
		GL.LoadOrtho();
		GL.Begin(GL.QUADS);
		GL.Color(Color.red);
		GL.Vertex3(0, 0.5F, 0);
		GL.Vertex3(0.5F, 1, 0);
		GL.Vertex3(1, 0.5F, 0);
		GL.Vertex3(0.5F, 0, 0);
		GL.Color(Color.cyan);
		GL.Vertex3(0, 0, 0);
		GL.Vertex3(0, 0.25F, 0);
		GL.Vertex3(0.25F, 0.25F, 0);
		GL.Vertex3(0.25F, 0, 0);
		GL.End();
		GL.PopMatrix();
	}
}
// Draw red a rombus on the screen
// and also draw a small cyan Quad in the left corner
//在屏幕上绘制一个红色菱形,并在左下角绘制一个青色小方形

var mat : Material;
function OnPostRender() {
	if (!mat) {
		Debug.LogError("Please Assign a material on the inspector");
		return;
	}
	GL.PushMatrix();
	mat.SetPass(0);
	GL.LoadOrtho();
	GL.Begin(GL.QUADS);
	GL.Color(Color.red);
	GL.Vertex3(0,0.5,0);
	GL.Vertex3(0.5,1,0);
	GL.Vertex3(1,0.5,0);
	GL.Vertex3(0.5,0,0);

	GL.Color(Color.cyan);
	GL.Vertex3(0,0,0);
	GL.Vertex3(0,0.25,0);
	GL.Vertex3(0.25,0.25,0);
	GL.Vertex3(0.25,0,0);
	GL.End();
	GL.PopMatrix();
}
最后修改:2011年8月6日 Saturday 8:53

本脚本参考基于Unity 3.4.1f5

英文部分版权属©Unity公司所有,中文部分© Unity圣典 版权所有,未经许可,严禁转载 。