Режим для Begin: визуализация линий.
Если вы хотите визуализировать что-то в 2D в пространстве экрана, то,
probably you will want to use GL.LoadOrtho or GL.LoadPixelMatrix.
Если вы хотите визуализировать что-то в "3D", то, вероятно, вы захотите
использовать GL.LoadIdentity и затем GL.MultMatrix с
3D transform, внутри которого вы хотите произвести визуализацию.
See Also: GL.Begin, GL.End.
// Draws a line from "startVertex" var to the curent mouse position. var mat : Material; private var startVertex : Vector3; private var mousePos : Vector3; startVertex = Vector3(0,0,0);
function Update() { mousePos = Input.mousePosition; // Press space to update startVertex if(Input.GetKeyDown(KeyCode.Space)){ startVertex = Vector3(mousePos.x/Screen.width, mousePos.y/Screen.height, 0); } }
function 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(Vector3(mousePos.x/Screen.width, mousePos.y/Screen.height, 0)); GL.End(); GL.PopMatrix(); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Material mat; private Vector3 startVertex; private Vector3 mousePos; void Update() { mousePos = Input.mousePosition; 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(); } void Example() { startVertex = new Vector3(0, 0, 0); } }