簡體   English   中英

Unity / WebGL和asm.js在MS Edge中發生了相關的崩潰

[英]Unity/WebGL and asm.js related crash in MS Edge

我有一個非常基本的Unity應用程序,它本質上是專有框架的測試工具。 它在Chrome,Firefox和Safari中運行良好。 Edge是一個不同的故事。

在Edge 12中,禁用asm.js,加載需要長時間 - 大約90秒,而其他瀏覽器則需要15-20秒。

在啟用了asm.js的Edge 12或13中,它會快速加載,但會在Unity應用程序啟動時立即崩潰選項卡。 我已經能夠找出“preRun”回調被調用,但“postRun”回調沒有。

我無法弄清楚如何開始調試 - 如果Dev Tools調試器打開,Edge會禁用asm.js,並且分離調試器也會禁用JS控制台。 我無法附加Unity調試器,因為崩潰似乎發生在我到達那一點之前。

是否有來自Edge的某種日志,我可以找到有關崩潰的任何內容,甚至可能是JS堆棧跟蹤?

這是由於我們的asm.js專業化代碼(我是其所有者)中的Edge中的錯誤。 感謝您報告此問題,我會盡快修補此問題! 如果其他人在asm.js中遇到崩潰,請隨時給我發消息,我很樂意和你一起修復(並在此期間找到解決方法)。

我想特別回答你的問題 - “是否有一些來自Edge的日志,我可以找到關於崩潰的任何內容,甚至可能是JS堆棧跟蹤?”

我真的建議你使用stacktrace.js - 這是他們的Github回購

只要你編寫Javascript代碼,在瀏覽器中調試它,找到任何錯誤或異常,這是迄今為止最好的方法。 它非常一致,支持大多數瀏覽器甚至Edge。

需要注意的一點是 - 你需要了解一些Javascript Promises ,這是ES6的一部分(同樣大多數最新的瀏覽器支持已經是)。

查看他們的文檔並使用完全適合您的文檔 他們說你可以使用它的5合1套餐。

您可以在代碼發生時處理錯誤,如下所示:

window.onerror = function(msg, file, line, col, error) {
    // callback is called with an Array[StackFrame]
    StackTrace.fromError(error).then(callback).catch(errback);
};

從錯誤中獲取Stacktrace-

var error = new Error('BOOM!');

StackTrace.fromError(error).then(callback).catch(errback)
=> Promise(Array[StackFrame], Error);

希望能幫助到你。 快樂的編碼! :)

暫無
暫無

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

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