
1个回答
展开全部
不能用插件,也不能用LineRender,那我暂时只能想到这个两种方法了,但是个人还是推荐前面这俩个,比较方便。
1 用Cylinder弄成很细的那种做成预设物,需要显示的时候调出来,然后自己用代码调整位置缩放朝向就可以当做3D的线段来用,我个人用这个做过类似指示方向的东西,算是简单粗暴。
2 用GL方法,在摄像机上面挂载脚本,然后写OnPostRender()画线,貌似屏幕坐标和世界坐标需要换一下,所以要复杂一点了(有点像OpenGL的那种写法,我个人也只是泛泛了解)。
额外,如果你只是调试,Debug.DrawLine()还是很有用的。
GL示例
void GLdemo()
{
GL.PushMatrix(); //保存当前Matirx
GL.LoadPixelMatrix();//设置pixelMatrix
GL.Begin(GL.LINES);
mat.SetPass(0);//mat是一个材质,注意shader的选择,否则颜色无效
GL.Color(Color.magenta);
GL.Vertex3(0, 0, 0);
GL.Vertex3(Screen.width, Screen.height, 0);
GL.End();
GL.PopMatrix();//读取之前的Matrix
}
void OnPostRender()
{
GLdemo ();
}
1 用Cylinder弄成很细的那种做成预设物,需要显示的时候调出来,然后自己用代码调整位置缩放朝向就可以当做3D的线段来用,我个人用这个做过类似指示方向的东西,算是简单粗暴。
2 用GL方法,在摄像机上面挂载脚本,然后写OnPostRender()画线,貌似屏幕坐标和世界坐标需要换一下,所以要复杂一点了(有点像OpenGL的那种写法,我个人也只是泛泛了解)。
额外,如果你只是调试,Debug.DrawLine()还是很有用的。
GL示例
void GLdemo()
{
GL.PushMatrix(); //保存当前Matirx
GL.LoadPixelMatrix();//设置pixelMatrix
GL.Begin(GL.LINES);
mat.SetPass(0);//mat是一个材质,注意shader的选择,否则颜色无效
GL.Color(Color.magenta);
GL.Vertex3(0, 0, 0);
GL.Vertex3(Screen.width, Screen.height, 0);
GL.End();
GL.PopMatrix();//读取之前的Matrix
}
void OnPostRender()
{
GLdemo ();
}
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |