WebGL開發入門

WebGL開發入門

什麼是Unity WebGLhtml

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

技術概覽編程

要在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和大多數控制檯上也是不支持的。

相關文章
相關標籤/搜索