[英]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.