所以我的一堆协程在我的游戏中运行良好/正常工作。
但是,其中之一是功率计,这是问题所在...
按下按钮,功率计将使用协程开始填充功率计。 (以红色面板的宽度表示)
目标是使电表充满得足够快,以防止每次都无法获得“全功率”。但是,它也必须光滑,并且看起来不错。
我面临的问题是我的协程在速度上已尽力而为,并且不能更快地运行,并且仪表移动得太慢。因此,要“加快”仪表的速度,我必须在红色面板上使用较大的宽度递增增量。
它有效,但是,这会导致2个问题。
以前有人遇到过吗?如果是这样,那么制造快速而平稳的功率计的最佳方法是什么,那么仍然可以实现各种价值选择?
谢谢, 本
这是我的代码:
public static IEnumerator StartPitchMeter(Player.Guy guy, float duration)
{
var dur = 0.01f;
do
{
yield return new WaitForSeconds(dur);
PlayerControls.PitchMeter += 50f;
if (PlayerControls.PitchMeter > 600) PlayerControls.PitchMeter = 0f;
PlayerControls.pitchMeter.sizeDelta = new Vector2(PlayerControls.PitchMeter, 50);
} while (!PlayerControls.stopPitch);
}
答案 0 :(得分:1)
如果您使用协程为图形目的更新某些内容,则希望在每个可用的渲染帧上进行更新(与调用$(".message").off()
方法的频率相同)。因此,不用等待经过指定的时间,而使用Update
,然后根据yield return null
移动仪表,这是自上一帧以来经过的时间(以秒为单位)。在这种情况下,您可以将Time.deltaTime
乘以您希望仪表填充的每秒多少个单位:
Time.deltaTime