onGUI纹理绘制吃到很多fps

时间:2012-11-05 14:35:39

标签: unity3d

渲染场景时,我的iphone 4上有一个标准的60fps。然后我在onGUI中绘制2个纹理,如下所示:

void OnGUI() 
    {
    GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBack);
        GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureFront);
        }

并且FPS下降到~30fps。前面的图像需要有alpha,所以我把它设置为覆盖RGBA 32bit,这个图像显然现在有3 mb,背面图像是1.5mb,两者的分辨率都是1024x768。

有没有办法更好地处理这个问题?我希望图像最大10fps,因为.. 30fps是荒谬的!

2 个答案:

答案 0 :(得分:0)

您可以使用带有纹理的GameObject作为主摄像头的父级。这样,当你使用OnGUI时,它会像纹理一样跟随相机。

答案 1 :(得分:0)

内置的GUI统一执行效果不佳(没有绘制调用批处理),您可以切换到GUITextures或任何其他GUI框架......

另外一件事,如果你使用内置的gui没有GUILayout禁用它来获得一些额外的帧..只需在你的start()函数中将useGUILayout设置为false