用户工具

站点工具


侧边栏



Unity3D中文文档

script:unityengine:classes:gl:gl.lines

GL.LINES 线

JavaScript ⇒ public static var LINES: int;
C# ⇒ public static int LINES;

Description 描述

Mode for Begin: draw lines.

从Begin模式开始后,然后绘制线。

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.

如果在场景中画2D对象,你可能要用到GL.LoadOrtho 或 GL.LoadPixelMatrix函数。
如果在场景中画3D对象,你可能要用到GL.LoadIdentity 或 GL.MultMatrix函数进行3D变换。

See Also: GL.Begin, GL.End.

JavaScript:

	// 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();
	}

C#:

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);
    }
}

GL

script/unityengine/classes/gl/gl.lines.txt · 最后更改: 2016/08/02 05:24 (外部编辑)