为什么等待 Task.Delay(10);停止统一 Web-GL 中的执行?

Why do await Task.Delay(10); stops execution in unity Web-GL?

我在 unity C# 中使用 await Task.Delay(10); 进行延迟。在构建和 Web-GL 格式的 运行 之后。执行在具有延迟的这一行停止。当我删除延迟时,它会执行.

while (XAxiscurrentXpos <= -izvalue) 
{ 
    await Task.Delay(10); 

    XAxiscurrentXpos += 0.001f; 
    Vector3 posx = new Vector3(XAxiscurrentXpos, XAxisposition.y, XAxisposition.z); 
    XAxis.transform.localPosition = posx; 
}

所以现在知道你实际上想做什么而不是你的任务你宁愿使用例如

public class MoveObject : MonoBehaviour
{
    public Transform XAxis;
    public float desiredUnitsPerSecond;

    // This is called once a frame by Unity
    private void Update()
    {
        if(XAxis.localPosition.x <= -izvalue)
        { 
            XAxis.localPosition += Vector3.right * desiredUnitsPerSecond * Time.deltaTime;
        }
    }
}

这会以 desiredUnitsPerSecond 的线速度在其局部右侧移动您的对象,只要它位于 -izvalue 的左侧。

我有使用 UniTask 的解决方案。 UniTask Link 在这里