首页 > 解决方案 > 使用physics2D时帧数大幅下降

问题描述

在过去的几天里,我一直在为此苦苦挣扎。
基本上,随着时间尺度的增加,fps 会难以置信地下降,尺度越高,fps 越低。它还取决于使用了多少子弹,子弹玩家/炮塔射出的子弹越多,fps 也就越低。


子弹运动脚本

rb.position = Vector2.MoveTowards(transform.position, oldTargetPosition, speed * Time.deltaTime);
if (transform.position == oldTargetPosition) { gameObject.SetActive(false); }

我也试过rb.position += dir * speed * Time.deltaTime;,但似乎没有区别。

rb.MovePosition()也没有区别。


我正在使用 OnTriggerEnter2D 来检测命中


我使用完全相同的功能来移动敌人和子弹和敌人的pooler

分析器截图1:https ://gyazo.com/9f13b5ed1deaec1eb5a331ff75a839e0

Profiler 截图2:https ://gyazo.com/b0be11a871e2897fe89f50009406f7f9


我确实尝试在 FixedUpdate 中注释掉其他所有内容,没有区别。我真的很感激任何提示/帮助。我确信我应该能够在没有 fps 下降的情况下射出大量子弹。虽然炮塔没有射击并且敌人即使在高时间尺度(x16)下也没有产卵,但 fps 稳定在大约 270。一旦他们开始射击,它就会下降到大约 90-120,即使它只有 1 个炮塔。

标签: c#unity3d

解决方案


推荐阅读