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