画线方式1. Debug.drawLine
在scence视图,显示参数是起点,终点,颜色,显示时间。显示时间为0则显示时间为1帧。如果game视图打开gizmos,也会显示出来。但是无法在应用上显示。
画线方式2.Gizmos.drawLine
在scence视图中,game视图打开gizmos也会显示。参数是起点,终点。只能在OnDrawGizmos或OnDrawGizmosSelected 中调用。在editor状态下都会显示线条。但是无法在应用上显示。
画线方式3.Graphic.drawmesh
在game和scence视图中显示,在update或fixedupdate中调用,多达25中重载,参数是位置,材质等信息,画出的是一个模型。没有研究。。。
画线方式4.GL
一般在OnRenderObject,OnPosRender。GL.Begin/GL.End里的渲染是自动合并的,一般是一个Drawcall。
可以在应用中显示。
格式如下 pushMatrix loadpixelmatrix(加载矩阵) popmatrix。 gl.begin gl.end。gl.vertex设置点,注意点是一对一对的。如 (1,2)(2,3)(3,4)。可以设置材质。
void OnPostRender()
{
GL.PushMatrix(); //保存当前Matirx
mat.SetPass(0); //刷新当前材质
GL.LoadPixelMatrix();//设置pixelMatrix
GL.Color(Color.yellow);
GL.Begin(GL.LINES);
GL.Vertex3(0, 0, 0);
GL.Vertex3(Screen.width, Screen.height, 0);
GL.End();
GL.PopMatrix();//读取之前的Matrix
}
画线方式5.LineRender
如同GL。用到组件linerender。可以设置材质,设置节点(但是不是成对的是线性的节点)。画出之后一直显示。可以在应用上显示。性能开销比GL大,不适合画太多的线条。