線(Line)描画の Begin モード
スクリーン空間に 2D の何かを描画したい場合、
probably you will want to use GL.LoadOrtho or GL.LoadPixelMatrix.
"3D" の場合は、実際の
3D 変換の GL.MultMatrix に続けて GL.LoadIdentity の使用を
検討してください。
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); } }