繁体   English   中英

编辑器中的FPS不错,但在设备(Google Cardboard)上却没有,如何提高FPS?

[英]Good FPS in Editor But not on devices(Google Cardboard), How to increase FPS?

我正在研究Google Cardboard Game。 我有5-10个精灵,其上有15-30个灌木丛(像草一样的单个灌木丛),15棵树(低多边形,<64个顶点),一台相机(由GVR Sdk提供)的地形。

在编辑器上,Framerate很好。 但是,当我在Galaxy S6上对其进行测试时,FPS低至10-20(我已经附加了一个脚本,可以在文本上获取帧速率)。 有优化建议吗?

这是Unity编辑器中的详细统计信息:

CPU:主6.0ms

帧数:160(平均)

批次数:117

三次:6.1k

垂直:3.3k

我相信您在运行时中经常使用“ GameObject.Find()”和“ gameobject.GetComponent()”方法。 这是统一开发人员最常见的问题。

最好不要在运行时使用它们! 仅在唤醒时或在启动方法中。

您需要在唤醒或启动方法内部创建所有必需的GetComponent <>并将结果分配给某些全局变量。 之后-只需在运行时中使用此变量即可。

这确实可以提高您在移动设备上的游戏速度。

确保您的设备没有过热,可能看起来很明显,但是您无法始终知道它何时在您的脸上(我也拥有S6)。

另外,确保您没有处于节能模式,听起来很蠢,但是我已经爱上了它;)

可能破坏智能手机游戏性能的众多因素包括:

  • 确保没有脚本在Update中做过多的工作(尤其是Instanciate()/ Destroy()
  • 不要移动静态对象,只是不要
  • 确保您不使用高分辨率纹理(根据我的经验,> 512x512是平方的,并且分辨率是2的幂

附带说明一下,GetComponents可能是个问题,替代方案已由@Andrew发布,只需在Start()/ Awake()方法中使用GetComponent并存储它们以备后用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM