【发布时间】:2021-11-03 02:46:06
【问题描述】:
我正在制作一个 cookie 点击器副本。
发生的情况是,我使用 yield return new WaitForSeconds (0.1f) 每秒将 cookie 添加到 cookie 计数器,并且我希望它们以快速的方式添加,而不是每秒添加。
问题是,当我在我的电脑上运行它时,它运行良好,但是当我在我的安卓上运行它时,它会慢慢地将 cookie 添加到计数器中。
据我所知,我会说这与 FPS 有关。我尝试在WaitForSeconds 中使用(Time.deltaTime * 0.1f),但它在android 中仍然运行缓慢。也尝试使用Invoke() 方法,但效果也很慢。
(我在Update 方法中有StartCoroutine。)
(当我把 1 秒而不是 0.1f 时,它工作正常,但从外观上看并不好。)
IEnumerator Rps()
{
Stats.CookiesTotal = Stats.CookiesTotal + Stats.cookiesPerSecond;
yield return new WaitForSeconds(Time.deltaTime * 0.1f);
yield return null;
}
private void Update()
{
StartCoroutine(Rps());
openSlot(price1text, price1, slot1);
openSlot(price2text, price2, slot2);
openSlot(price3text, price3, slot3);
}
【问题讨论】:
-
你在更新中启动了一个协程。那可能会变坏。您需要进行调试并显示它和您的代码。
-
我坚持了一段时间,我也尝试将协程放在 start 方法中,但我需要每秒添加 cookie,为此我还在 IEnumerator 中尝试了一段时间但没有任何工作正常
-
您还没有读过其中大部分内容是如何工作的。在协程中放置一个循环并在开始时启动它。并放弃额外的收益
-
不要使用协程,因为它们会从 c# 开发人员的角度教坏习惯,并且很可能会导致常规 c# 工作中的私刑