欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    Unity3D官方教程:WebGL 開始WebGL開發 什么是 Unity WebGL?**

    WebGL工程選項允許Unity以程序形式發布使用HTMl5技術和WebGL渲染API、在網頁瀏覽器中運行的Unity內容。為了構建和測試WebGL內容,在“Build Player”窗口中選擇WebGL構建目標,并且點擊“Build & Run ”。

    技術概覽

    為了在WebGL中運行,所有代碼需要是。我們使用 編譯器工具鏈來交叉編譯Unity運行時代碼(用C和C++編寫)到asm.js的代碼。asm.js是一個非常理想的子集,允許引擎 預編譯asm.js代碼為極具性能的原生代碼。

    為了轉換.NET 游戲代碼(C#和腳本)至,我們使用了一個稱為IL2CPP的技術。IL2CPP獲取.NET字節代碼并將它轉換為對應的C++源文件,然后通過使用,這些源文件被編譯,最終將用戶的腳本轉換為。

    平臺支持

    Unity WebGL內容在當前大部分桌面主流瀏覽器都支持,然而不同的瀏覽器,提供的支持程度仍有所差別。移動設備并不被Unity WebGL支持。

    不是所有Unity特性在WebGL工程中都可用,大部分是因為平臺限制的關系,例如:

    WebGL 瀏覽器兼容性

    Unity WebGL在一定程度上支持所有的桌面主流瀏覽器。然而,不同的瀏覽器之間,支持程度、預期性能并不一樣。請通過以下的表格,對Unity WebGL特性,以及哪些瀏覽器支持它們做一個整體查看。

    注意,Unity WebGL 內容目前在移動設備上不支持。它或許在高檔設備仍可以工作,但許多現有的設備并不足夠強大,且沒有足夠的內存空間來很好地支持Unity WebGL內容。出于這個原因,當嘗試在移動設備的瀏覽器上加載內容時,Unity WebGL會顯示一個警告信息(如果需要,此功能可以被關閉)。

    注意到,這個兼容表針對瀏覽器特定版本才有意義。更高版本會繼續支持,但先前的版本可能會不穩定。

    Mozilla Firefox 42

    Google Chrome 46

    Apple Safari 9.0

    MS 11

    MS Edge 13

    WebGL支持

    是。GPU黑名單可用。WebGL可能不被一些特定的老顯卡所支持。

    是。GPU黑名單可用。WebGL可能不被一些特定的老顯卡所支持。

    是。需要Safari8以及更高版本。

    是。需要IE11及更高版本。

    網頁音效。網頁音效API被用于在Unity WebGL內容中播放聲音。

    全屏

    否。Safari the HTML5 full-screen API, but no input when in full-screen mode, so Unity will disable full-screen when running in Safari.Safari支持HTML5全屏API,但在全屏模式下沒有鍵盤輸入。所以在Safari中運行時,Unity將關閉全屏功能。

    ug定制對話框區域起點_ug構建文件選項對話框_ug創建操作對話框

    游標鎖定

    是。需要Edge13及更高版本。

    手柄

    本地索引數據庫

    是。火狐直到42版、以及Safari不支持用于在一個iFrame中運行內容的索引數據庫。火狐43及以后的版本會修復此支持。

    是。火狐直到42版、以及Safari不支持用于在一個iFrame中運行內容的索引數據庫。火狐43及以后的版本會修復此支持。

    網絡套接字

    網絡實時通信

    WebGL2.0

    否。火狐支持WebGL2.0,但默認不可用,并且需要在about:config中開啟。

    ug定制對話框區域起點_ug創建操作對話框_ug構建文件選項對話框

    否。Chrome支持WebGL2.0,但默認不可用,并且需要在chrome://flags中開啟。

    asm.js預編譯。asm.js是瀏覽器可以針對性優化的子集。由于Unity使用asm.js,所以實現了asm.js支持的瀏覽器能夠更快地運行Unity WebGL。

    注意

    Chrome可能需要大量的內存來解析生成的代碼,可能在32位瀏覽器重加載內容時,引起內存溢出或崩潰錯誤。查看“Memory ”(暫未譯出)獲得更多關于內存使用的信息。

    不支持音效,并且太緩慢而無法像樣地支持大部分Unity WebGL內容。出于這個原因,當在IE中打開內容時,我們將展示一個關于使用不支持的瀏覽器的警告信息。在表格中列舉IE只是為了完整性;應當建議IE使用者升級到微軟新的Edge瀏覽器。

    構建并運行一個WebGL項目

    當你構建一個WebGL項目時,Unity用以下文件創建了一個文件夾:

    開發/發行 文件夾包含了以下文件(“”文件名稱代表你項目的名稱)。(注意,如果你生成一個發行版工程,這個文件夾里的文件會誒壓縮并有一個.gz的后綴。查看下面分發尺寸的注釋。)

    你可以通過用大部分瀏覽器打開index.html文件,直接查看你的WebGL 播放器。然而,出于安全的原因,Chrome在從本地文件URL中打開的腳本上做了限制,所以這個技術在Chrome中無法使用。為了繞過Chrome的限制,使用Unity的Build&Run命令(File->Build&Run);這個文件就暫時在一個本地網頁服務器中,并且是從一個本地宿主URL中打開。或者,可以用 –disable-web- 命令行選項來運行Chrome,這允許Chrome從本地文件的URL加載內容。

    在一些服務器上,用戶需要生成可讀取的.mem和.data文件,因為服務器需要提供這些文件給用戶。

    構建播放器選項

    (菜單:File->Build …)進入WebGL選項對話框。在對話框中,從平臺列表中選擇WebGL,然后選擇播放器選項…

    平臺選擇對話框

    開發工程

    當你選中 Build 勾選框,Unity生成一個開發工程,有事件探查器支持喝一個開發控制臺來查看錯誤。另外,開發工程不壓縮內容(即,內容不是最小化的);維持在在可以人工閱讀的形式,保留了函數名,這樣用戶得到有用的錯誤追蹤棧。注意,這意味著開發工程會非常大,太大而無法發布。

    使用預構建引擎

    這個選項僅在用戶勾選了開發工程時出現。在工程選項對話框中使用“Use pre-build Engine”選項來在開發期間加速構建迭代時間。當此選項被啟用時,Unity僅重構建”manager code”,動態鏈接到預編譯Unity引擎,這樣項目的重構建大概會快30%至40%。注意,這種構建類型僅適合于開發目的,因為總是產生””引擎代碼。此外,由于動態鏈接,這種工程的類型比普通類型的執行上更慢。

    自動連接探查器

    此選項僅當用戶勾選了開發工程時可用。勾選自動連接探查器選項,讓用戶探查Unity WebGL內容。對于WebGL,它不可能連接到事件探查器來運行工程像在其它平臺上那樣,所以用戶需要使用這個選項來連接內容到編輯器。這是因為事件探查器連接通過使用WebGL的被掌控,單一個網頁瀏覽器僅允許內容的向外連接。

    播放器設置

    WebGL在播放器設置的檢視器窗口(菜單:Edit->Project ->Player)中,有一些另外的選項。

    其它選項 Other

    其它選項

    精簡引擎代碼

    打開 Other 來選擇 Strip Engine Code選項。這個選項默認被選中,來允許代碼為WebGL所精簡。隨著這個選項被選中,Unity不包括任何你不使用的類的代碼。例如,如果你不使用任何物理組件或功能,那么整個物理引擎會被從你的工程中移除。查看下方的精簡區來獲得更多細節。

    發布選項

    發布選項

    WebGL內存大小

    ug創建操作對話框_ug定制對話框區域起點_ug構建文件選項對話框

    打開 進入WebGL 內存大小區域。這里,你可以指定內容應為它的堆分配多少內存(以MB為單位)。如果這個值太低,用戶會收到“內存溢出”錯誤。這意味著要加載的內容喝場景無法完整放入可用的內存中。然而如果這個值太高,內容可能無法加載到一些瀏覽器或一些機器里,因為瀏覽器可能沒有足夠的可用內存來分配要求的堆尺寸。這個值被寫到在生成的 .html 文件里一個名為的變量中,所以如果用戶希望嘗試這個值,可以編輯 .html 文件來避免重構你的項目。查看在 WebGL memory usage 中的 User Manual 頁面來獲取更多細節。

    啟用異常

    打開發布設置來進入 Enable (啟用異常) 。啟用異常允許用戶指定在運行時意外的代碼行為(通常被認為是錯誤)如何被處理。這里有三個選項:

    Unity通過在代碼中嵌入檢查,為它們生成這些異常;因此這些選項增大了代碼尺寸并且降低了性能。僅在需要調試時,在代碼中使用這個模式,因為它構建了非常龐大且非常緩慢的工程。

    選擇 (發布設置)來進入Data Caching(數據緩存)。選擇此項來開啟播放器數據的自動本地緩存。這個選項設置資源在瀏覽器的索引型數據庫中,作為本地的緩存而存儲;這樣在內容的后續運行時,資源不會被再次下載。注意,不同的瀏覽器在允許索引型數據庫存儲時,有不同的規則;瀏覽器可能詢問用戶來允許存儲數據,并且工程可能超出被瀏覽器定義的尺寸限制。

    發行大小

    當向WebGL平臺發布時,保證工程的大小盡可能低,讓用戶在內容開始前,只經歷可忍受的下載時長。關于降低資源尺寸的通用技巧,請閱讀 the file size of the build。

    對于WebGL的專有提示

    如果要生成一個發行版工程,Unity根據在WebGL -> 窗口中選擇的 Format(壓縮格式),來壓縮工程輸出文件。

    這里寫圖片描述

    查看 builds中的文檔,來獲取更多這些選項的信息,以及如何用這些選項來發布工程。

    資源包

    因為所有資源數據需要在內容之前預先下載,所以你應當考慮從你的主數據文件中移除資源,放入資源包中。用這種方式,你可以為你的內容創建一個能迅速讀取的,小的加載場景。資源包也有助于資源數據內存管理:你可以通過調用.Unload,從內存中卸載你不再需要的資源數據。

    一些在WebGL平臺上使用資源包時需要考慮的事情:

    當你在資源包中使用在你主工程中沒用到的類類型,Unity會對這些類從工程中精簡掉這些代碼。當嘗試從資源包中加載資源時,這可能引發錯誤。查看在下方 中的部分,來學習如何修復這個問題。

    WebGL不支持多線程,但http下載僅在它們結束下載時可用。由于這個原因,當下載完成時,Unity WebGL工程需要在主線程中解壓資源數據,阻塞了主線程。為了避免這一中斷,對于在WebGL上的資源包,LZMA 是不可用的。資源包換成用LZ4來壓縮,在解壓縮時非常迅速。如果你需要比LZ4更小的壓縮尺寸,你可以配置你的網頁服務器對你的資源包使用gzip或者Brotli壓縮(比LZ4壓縮更小)。查看 builds中的文檔來獲取如何進行壓縮的更多信息。

    通過使用瀏覽器的索引型數據庫API,來實現:在WebGL中使用 以支持資源包在用戶的電腦上緩存。注意,索引型數據庫可能在某些瀏覽器上支持有限,且這些瀏覽器可能要求用戶提供在磁盤上存儲數據的權限。查看 WebGL browser 中的文檔來獲取更多信息。

    精簡

    Unity 默認會從你的工程中移除所有不被使用的代碼。可以通過播放器設定檢視器窗口來改變設置。(菜單:Edit->Project ->Player):選擇Other 進入Strip Engine Code 精簡代碼選項。開啟精簡選項會更好。

    選擇精簡,Unity對你的項目中任何被使用的派生類進行檢查(無論是被腳本代碼引用,或是在你場景序列化數據中)。然后,從工程中移除沒有任何類被使用的Unity子系統。這讓你的工程代碼更少,需要下載與解析的量都更少(所以代碼運行更快,使用更少的內存)。

    **代碼精簡帶來的問題**Issues with code

    如果精簡了實際上必須保留的代碼,可能導致你的項目出問題。當你在運行時,要加載的資源包中原本包含不在主工程中、并已被精簡了的類,就會產生問題。當這發生時,瀏覽器的控制臺會出現錯誤信息(并可能伴隨著更多錯誤)。例如:

    無法生成編號為XXX的類

    為了排除這些從無,在類編號引用中查找,以查看是哪個類在嘗試創建實例。在這種情況下,你可以強制要求Unity在工程中為這個類包含代碼,要么通過在你的腳本或場景中添加一個對該類的引用,或者對你的項目增加一個link.xml文件。

    下面是一個確保碰撞器類(以及物理模塊)在項目中得以保留的例子。向名為link.xml的文件中添加這些XML代碼,并將此文件放到你的資源文件夾中。

    如果你懷疑,精簡引起你工程的問題,你也可以嘗試在測試期間關閉精簡引擎代碼選項。

    Unity不提供查看哪些模塊和類在工程中包含的方便途徑,這途徑可以讓你最優化地精簡項目。然而,為了得到所包含類及模塊的概覽,你在生成一個工程后,可以查看生成的文件Temp//Data//on.cpp 。

    注意,精簡引擎代碼選項只影響Unity引擎代碼。IL2CPP總是從你管理的dll和腳本精簡字節代碼。當你需要在你的代碼中,通過反射動態地引用管理的類、而不是通過靜態引用,這會引起問題。如果你需要通過反射存取類型,你也需要設置一個link.xml文件來保留這些類。查看iOS Build size 的文檔來獲取更多link.xml文件的信息。

    移動工程輸出文件

    如果你希望改變你輸出文件相對于index.html文件的位置,可以通過編輯dataUrl

    ,codeUrl,以及memUrl區,以及在index.html文件中的.js腳本標簽來實現。你可以為這些內容指定在外部服務器的URL,如果你希望將文件在一個內容分布式網絡(CDN)上主辦,但你需要確保,宿主服務器已經啟用 跨域資源共享(Cross Origin Sharing, CORS)。查看 WebGL 頁面的指南來獲取更多關于CORS的信息。

    增量工程

    你的項目通過IL2CPP生成的C++代碼時增量編譯的;即,在最新工程中改變的C++代碼會被再次編譯。沒有改變的源代碼復用為之前工程生成的相同目標文件。用于增量C++工程的對象文件存儲在你的Unity項目 Library/目錄中。

    為了得到一個干凈的,從零開始都沒有使用增量編譯所生成C++代碼的工程,刪除 你Unity項目目錄中 Library/目錄。注意,如果Unity編輯器版本不同于用于之前WebGL工程的編輯器,Unity會自動生成一個干凈的,從零開始的工程。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有