Begin 的模式:绘制线条。
绘制经过每对顶点的线条。如果经过 4 个顶点,A、B、C 和 D,则绘制两条线:一条在 A 和 B 之间,一条在 C 和 D 之间。
要为 2D 模式绘制设置屏幕,则使用 GL.LoadOrtho 或 GL.LoadPixelMatrix。
要为 3D 模式绘制设置屏幕,则使用 GL.LoadIdentity,然后使用具有所需变换矩阵的 GL.MultMatrix。
另请参阅:GL.Begin、GL.End。
//Attach this script to a GameObject with a Camera component
using UnityEngine;
public class Example : MonoBehaviour { // Draws a line from "startVertex" var to the curent mouse position. public Material mat; Vector3 startVertex; Vector3 mousePos;
void Start() { startVertex = Vector3.zero; }
void Update() { mousePos = Input.mousePosition; // Press space to update startVertex if (Input.GetKeyDown(KeyCode.Space)) { startVertex = new Vector3(mousePos.x / Screen.width, mousePos.y / Screen.height, 0); } }
void OnPostRender() { if (!mat) { Debug.LogError("Please Assign a material on the inspector"); return; } GL.PushMatrix(); mat.SetPass(0); GL.LoadOrtho();
GL.Begin(GL.LINES); GL.Color(Color.red); GL.Vertex(startVertex); GL.Vertex(new Vector3(mousePos.x / Screen.width, mousePos.y / Screen.height, 0)); GL.End();
GL.PopMatrix(); } }