WebGL開發入門


WebGL開發入門

什么是Unity WebGL

可以使用Unity的WebGL構建選項將內容以JavaScript程序發布,這當中使用了HTML5技術和WebGL渲染接口API以在瀏覽器中運行Unity內容。Build Player窗口中選擇WebGL構建目標,然后點擊Build & Run,就能以WebGL形式構建並測試你的內容。

技術概覽

要在WebGL中運行,所有代碼必須是JavaScript。我們使用emscripten編譯工具鏈將Unity運行時代碼(用C和C++編寫)跨平台編譯成asm.js JavaScript。asm.js是JavaScript的一個很可優化的子集,允許JavaScipt引擎將asm.js代碼AOT編譯成非常高效的原生代碼。

為將.NET游戲代碼(你的C#和UnityScript腳本)轉換成JavaScript,我們使用了稱為IL2CPP的技術。IL2CPP提取.NET字節碼並將其轉換成相對應的C++源文件,接着使用emscripten技術編譯這些文件,將你的腳本轉換成JavaScript。

平台支持

大多數主流瀏覽器的當前版本都支持Unity WebGL內容,然而不同瀏覽器的支持程度不一樣。Unity WebGL不支持移動設備。

WebGL構建里並不包含Unity的所有內容,這主要因為平台的限制。具體來說是以下幾點:

·        構建的WebGL內容不支持多線程,這是由於JavaScript本身就缺乏多線程的支持。其中包括Unity內部為提高性能所用的多線程,以及腳本代碼和托管dll里使用的多線程。基本上,System.Threading命名空間里的所有內容都不被支持。

·        在MonoDevelop或Visual Studio中WebGL構建不能被調試。詳見:WebGL構建調試及疑難解答

·        出於安全起見,瀏覽器不允許在網絡編程里直接訪問IP套接字。詳見:WebGL網絡編程

·        WebGL圖形接口API相當於OpenGL ES2.0,其有很多限制。詳見:WebGL圖形技術

·        基於Web Audio接口API ,WebGL構建為音頻使用自定義的后台技術,其只支持基本的音頻特性。詳見:WebGL中使用音頻

·        WebGL是一個AOT平台,因此它不支持使用System.Reflection.Emit動態創建代碼。在所有其他IL2CPP平台、iOS和大多數控制台上也是不支持的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM