用于 Begin 的模式:绘制线条。
在传入的每对顶点之间绘制线条。如果您传入四个顶点: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(); } }