Mode for Begin: draw lines.
If you want to draw something 2D in screen space then
probably you will want to use GL.LoadOrtho or 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.
// 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 example : 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);
}
}
import UnityEngine
import System.Collections
class example(MonoBehaviour):
public mat as Material
private startVertex as Vector3
private mousePos as Vector3
def Update():
mousePos = Input.mousePosition
if Input.GetKeyDown(KeyCode.Space):
startVertex = Vector3((mousePos.x / Screen.width), (mousePos.y / Screen.height), 0)
def OnPostRender():
if not 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()
def Example():
startVertex = Vector3(0, 0, 0)