救命啊!为什么 WaitForSeconds 的时间比实际时间慢半拍?

vitolam 2021-05-01 12:57:12
如题:
我已经用了 FixedUpdate 了怎么时间还是慢半拍的?有什么解决方法吗?



using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class Spawner : MonoBehaviour
{
public RadialSlider slider;
public Button button;

void Start()
{
button.onClick.AddListener(OnClick);
button.interactable = true;

slider.timeRemaining = slider.maxTime;
}

void OnClick()
{
StartCoroutine(OnFixedUpdateRoutine());

}

IEnumerator OnFixedUpdateRoutine()
{

slider.timeRemaining = slider.maxTime;
button.interactable = false;


float fixedDeltaTime = Time.fixedDeltaTime;
for(float t = slider.maxTime; t > 0; t -= Time.fixedDeltaTime)
//for(float t = 0; t < slider.maxTime ; t += fixedDeltaTime)
{

slider.timeRemaining = t;

yield return new WaitForSeconds(fixedDeltaTime);
}

slider.timeRemaining = Time.time;
button.interactable = true;
}
}
...全文
333 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziqi0716 2021-05-07
别靠这个计时器来控制你的流程,考虑用事件,用委托,回调函数等。
  • 打赏
  • 举报
回复
vitolam 2021-05-01
引用 1 楼 xuzuning 的回复:
什么叫慢半拍? 我不知道你在做什么,也不大可能提出什么有益的建议。不过 从字面上看 WaitForSeconds 是延时若干秒,既然有延时,慢一点就是正常的
就是倒数的时候,比正常的秒数慢
  • 打赏
  • 举报
回复
xuzuning 2021-05-01
什么叫慢半拍? 我不知道你在做什么,也不大可能提出什么有益的建议。不过 从字面上看 WaitForSeconds 是延时若干秒,既然有延时,慢一点就是正常的
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2021-05-01 12:57
社区公告

让您成为最强悍的C#开发者