1
我試圖內Unity3D 5.6我們的應用程序的關鍵時間段垃圾收集不會停止運行 - Unity3D中的GCLatencyMode.LowLatency不可設置?
我想設置延遲模式,以「低延時」期間暫停(或減少)垃圾收集,但在檢查GCSettings.LatencyMode只顯示值互動
GCSettings.LatencyMode = GCLatencyMode.LowLatency;
我試圖內Unity3D 5.6我們的應用程序的關鍵時間段垃圾收集不會停止運行 - Unity3D中的GCLatencyMode.LowLatency不可設置?
我想設置延遲模式,以「低延時」期間暫停(或減少)垃圾收集,但在檢查GCSettings.LatencyMode只顯示值互動
GCSettings.LatencyMode = GCLatencyMode.LowLatency;
Unity3D 5.6不具備Interactive
價值,但你可以得到,當你下載統一2017年因爲該版本的Unity支持。下載它然後啓用.NET 4.6你可以看到如何啓用this後。
請記住,這是Unity,它應該編譯,但這並不意味着它會起作用。如果您不想垃圾收集運行,請勿在遊戲運行時分配內存。在遊戲開始的時候使用Object Pooling來處理你的GameObjects。
.net 3.5 does have Interactive https://msdn.microsoft.com/en-us/library/system.runtime.gclatencymode(v=vs.90).aspx – morty346
是的,我知道。 Unity使用Mono而不是Microsoft的實現。更糟糕的是,舊版本使用的是舊版Mono版本,沒有實現很少的API。 Unity 2017修復了這個問題。請在評論之前嘗試一下。 – Programmer
首先請理解我感謝您的幫助......也請大家注意,在一個大型項目中切換整個平臺是一件多餘的工作,然後請求更多的澄清。因爲MSDN文檔和編譯都指向我有一個可行的解決方案,所以'在評論之前嘗試'並不感謝......此外,'Interactive'在5.6中工作得非常好,因爲這是默認返回值。如我在原始問題中概述的那樣設置爲「LowLatency」是無效的。 – morty346