簡體   English   中英

Unity何時將Debug.Log寫入控制台

[英]Unity when does Debug.Log write to console

我正在嘗試對我的算法進行基准測試。 有時需要花費很長時間,我想知道到達的位置。 但是出於某種原因,在更新方法結束之前,Debug.log不會打印任何內容。

我希望看到它逐步打印出文本,但是我會在更新周期結束時立即獲取所有內容。 Makediagram方法非常慢。 根據輸入的不同,可能需要7-700秒。

private void Update()
{
if (i > 0) return;
int count = 16 * (int)Mathf.Pow(2, i);

    Debug.Log("New diagram");
        BowyerWatson bw = new BowyerWatson(BowyerWatson.STATE.STATE_3D, count, 0);
    Debug.Log("Points generated");
        float ctime = Time.realtimeSinceStartup;
        bw.MakeDiagram();
        time += Time.realtimeSinceStartup - ctime;
    Debug.Log("i:" + i + " j:" + j + " time:" + (Time.realtimeSinceStartup-ctime));


    j++;
    if(j == 20)
    {
        i++;
        j = 0;
        Debug.Log(count + " points took: " + time / 20 + "s on average");
        time = 0;
    }

}

Debug.Log立即寫入。 問題在於更新不會產生並等待一項任務結束。 您真正想要的是在MakeDiagram()運行時產生的協程。

或者在MakeDiagram()運行時,然后在您的Update()函數中,將布爾值標記為true,如果布爾值為true,則return ,然后在MakeDiagram()完成后將布爾值標記為false,以繼續執行代碼。

暫無
暫無

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

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