Unity 的绘制线段代码

using UnityEngine;
using System.Collections;
public class Line : MonoBehaviour
{
    public Material mat;
    public Color color = Color.red;
    public Vector3 pos1;
    public Vector3 pos2;
    public bool isReady = false;

    void Start()
    {
        mat.color = color;
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            pos1 = Input.mousePosition;
        }
        if (Input.GetMouseButtonUp(0))
        {
            pos2 = Input.mousePosition;
            isReady = true;
        }
    }

    void OnPostRender()
    {
        if (isReady)
        {
            GL.PushMatrix();
            mat.SetPass(0);
            GL.LoadOrtho();
            GL.Begin(GL.LINES);
            GL.Color(color);
            GL.Vertex3(pos1.x / Screen.width, pos1.y / Screen.height, pos1.z);
            GL.Vertex3(pos2.x / Screen.width, pos2.y / Screen.height, pos2.z);
            GL.End();
            GL.PopMatrix();
        }
    }
}

拓:

 Light Probe:光照探头,模拟场景运行时候的实时光照,可有效节省系统光照开销。设置时一般遵循一下准则:1.将光照探头放在灯光和阴影转换处,可以有效地降低系统光照运算开销;2. 移动物体,相机等,移动不到的范围,以及光影没有明显地变化区域就没必要设置光照探头了。

Reflection Probe:反射探头:模拟光对物体表面的反射,在特定的需要光照反射的地方,比如金属物体表面,我们就可以设置反射探头,系统会获取CubeMap里面的属性,对物体表面进行渲染,实现

原文地址:https://www.cnblogs.com/allyh/p/11486921.html