救命啊!为什么 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;
}
}
...全文
221 点赞 收藏 3
写回复
3 条回复
ziqi0716 05月07日
别靠这个计时器来控制你的流程,考虑用事件,用委托,回调函数等。
回复 点赞
vitolam 05月01日
引用 1 楼 xuzuning 的回复:
什么叫慢半拍? 我不知道你在做什么,也不大可能提出什么有益的建议。不过 从字面上看 WaitForSeconds 是延时若干秒,既然有延时,慢一点就是正常的
就是倒数的时候,比正常的秒数慢
回复 点赞
xuzuning 05月01日
什么叫慢半拍? 我不知道你在做什么,也不大可能提出什么有益的建议。不过 从字面上看 WaitForSeconds 是延时若干秒,既然有延时,慢一点就是正常的
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告