首页 > 解决方案 > 使用 Unity,什么可能导致代码无法在 FixedUpdate() 中执行,而在 Update() 中却执行?

问题描述

我正在制作一个以每秒设定的速率递增的计数器。使用第一个代码片段,它按预期工作,但是当我将 Update 函数更改为 FixedUpdate 函数时,就像在第二个代码片段中一样, nanoidsValue.text 没有得到更新,也没有引发错误。

public class Nanoids : MonoBehaviour
{

    [SerializeField]
    public TMP_Text nanoidsValue;

    public double currentNanoids;

    // Update is called once per frame
    void Update()
    {
        currentNanoids += 1;
        nanoidsValue.text = currentNanoids.ToString();
    }
}



public class Nanoids : MonoBehaviour
{

    [SerializeField]
    public TMP_Text nanoidsValue;

    public double currentNanoids;

    // Update is called once per frame
    void FixedUpdate()
    {
        currentNanoids += 1;
        nanoidsValue.text = currentNanoids.ToString();
    }
}

根据我读过的内容,Update 和 FixedUpdate 应该只在执行速度上有所不同。为什么在使用 FixedUpdate 时更改不会保存到 nanoidsValue.text?

PS我尝试在Update和FixedUpdate之间来回多次,没有改变任何其他东西,结果总是这样。

标签: c#unity3d

解决方案


推荐阅读