GL.Lines Unity3D(C#) - 未在编辑视图中呈现的线条

时间:2014-01-26 01:26:39

标签: c# unity3d

我在Unity场景中的主摄像头附加了一个脚本,使我能够使用良好的旧OpenGl线绘制以原点为中心的等距网格。

如Unity的文档(there)所示,我在“OnPostRender”事件上启动绘图;问题是只在游戏视图中绘制线条,而不是在编辑视图中绘制(即使使用[ExecuteInEditMode]指令)。

有没有办法让他们画在那里?

-

顺便说一句,这是函数的代码(C#):

void OnPostRender()
{
    CreateLineMaterial();
    // set the current material
    lineMaterial.SetPass( 0 );

    GL.Begin( GL.LINES );

    GL.Color(mainColor);

    // Draw x lines
    for (int x = - gridSizeX / 2; x <= gridSizeX / 2; x++) {
        GL.Vertex3 (- gridSizeX / 4 + x, - gridSizeX / 8, 0 - x * 0.5f);
        GL.Vertex3 (gridSizeX / 4 + x, gridSizeX / 8, 0 - x * 0.5f);
    }
    // Draw y lines
    for (int y = - gridSizeY / 2; y <= gridSizeY / 2; y++) {
        GL.Vertex3 (- gridSizeY / 4 + y, gridSizeY / 8, 0 - y * 0.5f);
        GL.Vertex3 (gridSizeY / 4 + y, - gridSizeY / 8, 0 - y * 0.5f);
    }
    GL.End();
}

1 个答案:

答案 0 :(得分:3)

上帝,我知道会是这样的。我整个下午都陷入困境,当我最终决定在这里提交问题时,我实际上找到了解决方案。

所以我为你浪费的时间道歉。

顺便说一句,解决办法只是在OnDrawGizmos事件上绘制网格......