2015-06-13 37 views
2

我在手机(游戏平台游戏)上遇到了一个很长时间的问题,但我报告说当我的fps不低于60时,我的游戏运行良好。我注意到,当我触摸屏幕时,我的fps很好,但是当我不这样做时,fps下降到大约58,59,之后,顺利地跟随我的球员。对于测试,我只用FPSCounter脚本创建新场景,效果是一样的。有人可以帮我吗?我认为这是引擎设置的原因,但我无法处理它。 强调文本 (UNITY3D安卓游戏)当我不触摸屏幕时,我的fps比我触摸的时候更低

//--------------------------------------------- 
// VARIABLES 
//--------------------------------------------- 

private float deltaTime = 0.0f; 

//--------------------------------------------- 
// METHODS FROM SUPERCLASS 
//--------------------------------------------- 

void Update() 
{ 
deltaTime += (Time.deltaTime - deltaTime) * 0.1f; 
} 

void OnGUI() 
{ 
GUIStyle style = new GUIStyle(); 
float x = Screen.width - 110; 
float fps = 1.0f/deltaTime; 

Rect rect = new Rect(x, 90, 100, 50); 

style.fontSize = 18; 
style.normal.textColor = getColor(fps); 

string text = string.Format("{0:0,0.0000 FPS}",fps); 
GUI.Label(rect, text, style); 
} 

//--------------------------------------------- 
// CLASS LOGIC 
//--------------------------------------------- 

private Color getColor(float fps) 
{ 
if (fps >= 60) 
{ 
return Color.yellow; 
} 
return Color.red; 
} 

回答

0

如前所述,你应该切换到新的UI系统,因为旧的GUI系统总是一场噩梦。

但是,如果您不想切换,请尝试在OnGUI之外设置更多变量。

OnGUI每帧被调用多次,设置一个GUI风格等如此频繁 - 特别是在性能已经很差的行为上是昂贵的。