天天看點

WebGL開發入門 - andycja

WebGL開發入門

2017-08-30 18:36 

andycja 

閱讀(2343) 

評論(1) 

編輯 

收藏 

舉報

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和大多數控制台上也是不支援的。

  • 分類 web前端

    , Unity3D

    , C#.NET

    , 技術譯作

  • 标簽 Unity3D

    , game

WebGL開發入門 - andycja