簡體   English   中英

在WaitForSeconds期間協程執行代碼

[英]Coroutine execute code during WaitForSeconds

我正在生成預制件並使用協程,但是在yield return new WaitForSeconds(2.3f)之前,我可以看到我運行的函數的預制原因之間存在隨機延遲或間隔。

IEnumerator SpawnObject()
{
    while (true)
    {
        GameObject screenShape = (GameObject)Instantiate(screenlines, new Vector3(ShapespawnerObjPos.transform.localPosition.x, shapeposition[GetFirstIndexlistofIntShapePosition()], ShapespawnerObjPos.transform.localPosition.z), transform.rotation);

        //function get random number with checking called here 

        yield return new WaitForSeconds(2.3f);
    }
}

我打算做的是在WaitForSeconds()期間執行功能以獲取隨機數,而不是在此之前執行此功能,以避免預制件之間出現隨機間隔。

WaitForSeconds會在您說的秒數內停止執行該方法。 在這段時間內您無法執行任何操作,而這正是WaitForSeconds試圖避免的(執行代碼)。

您應該嘗試完成代碼,但是如果延遲是出於計算的原因,我建議您僅在Start方法中創建一個數組/已生成數字的列表,然后使用該列表而不是在“運行時”對其進行計算...您可以在該列表上循環或每次用完數字時都生成一個新的列表,仍然可以避免生成該計算的多個實例,這樣,您應該可以避免隨機延遲。

不過,請記住,我只看到了部分代碼,所以我不確定延遲的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM