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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiETPwJWZ3ZCMwcTP39zZwpmLuJkbhVXQE9UMZRUT6tGVOdXRUxUNFpXTy0EVNBTRU1ENBpXT3lkaNdXSUxUMrpmTx0keMpXQq1UeBpWT2VFVPJTV61kdjJjYzpkMMRXOykVdNNjW2hXbZVnTtxUeJRUT5N2ViBXO5xkNNh0YwIFSh9CXt92YuM3YltWas5iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)