您好,登錄后才能下訂單哦!
歡迎來(lái)到unity學(xué)習(xí)、unity培訓(xùn)、unity企業(yè)培訓(xùn)教育專區(qū),這里有很多U3D資源、U3D培訓(xùn)視頻、U3D教程、U3D常見(jiàn)問(wèn)題、U3D項(xiàng)目源碼,我們致力于打造業(yè)內(nèi)unity3d培訓(xùn)、學(xué)習(xí)第一品牌。
本地客戶端 (NaCl) 是 Google 提供的新技術(shù),其允許您在 Web 頁(yè)面嵌入本地可執(zhí)行代碼,以便您在無(wú)需安裝插件的情況下部署性能非常強(qiáng)的 web 應(yīng)用程序。目前,NaCl 僅支持在 Windows、Mac OS X 和 Linux(含可用的 Chrome 操作系統(tǒng)支持)上使用 Google Chrome,但這是一項(xiàng)開源技術(shù),我們以后可將此技術(shù)移植到其他瀏覽器平臺(tái)。
Unity 3.5 為使用 NaCl 運(yùn)行 Unity 網(wǎng)頁(yè)播放器 (Web Player) 目錄(.unity3d 文件)提供支持,這無(wú)需在 Chrome 上安裝插件的情況下運(yùn)行目錄。這是早期版本 – 性能穩(wěn)定,但不支持 Unity 網(wǎng)頁(yè)播放器 (Web Player) 支持的所有功能,因?yàn)?NaCl 是一個(gè)不斷更新的平臺(tái),不支持瀏覽器插件中支持的所有功能。
在 NaCl 上構(gòu)建和測(cè)試游戲非常簡(jiǎn)單。您需要安裝 Google Chrome。只需在發(fā)布設(shè)置 (Build Settings) 中選擇 “網(wǎng)頁(yè)播放器 (Web Player)”,然后選中 “啟用 (Enable) NaCl” 復(fù)選框。這將確保生成的 unity3d 文件可在 NaCl 上運(yùn)行(通過(guò)添加 NaCl 所需的 GLSL ES 著色器和禁用 NaCl 不支持的動(dòng)態(tài)字體),并安裝 NaCl runtime 和 html 文件,以在 NaCl 中運(yùn)行游戲。如果單擊構(gòu)建并運(yùn)行 (Build & Run),Unity 會(huì)將播放器作為 Chrome 中的應(yīng)用程序安裝起來(lái),并自動(dòng)運(yùn)行播放器。
在當(dāng)前狀態(tài)的默認(rèn)情況下不會(huì)啟用 Chrome 通用網(wǎng)頁(yè)。將 NaCl 播放器嵌入至任何網(wǎng)頁(yè)并指導(dǎo)用戶在 chrome://flags 中手動(dòng)啟用 NaCl,目前,安裝并立即運(yùn)行 NaCl 游戲的唯一方法是在 Chrome Web 商店 (Store)(默認(rèn)情況下將啟用 NaCl)部署這些游戲。請(qǐng)注意,Chrome Web 商店 (Store) 是公開且不受限制的,可供您托管嵌入至自己網(wǎng)站的內(nèi)容,或使用自有的付款處理系統(tǒng)(如果需要)。根據(jù)計(jì)劃,Google 完成名為可移植 NaCl (PNaCl) 的新技術(shù)的開發(fā)工作后,NaCl 的局限性將得到改觀,此技術(shù)允許您將可執(zhí)行文件作為 LLVM 位碼安裝,從而讓 NaCl 應(yīng)用程序擺脫任何特定 CPU 體系結(jié)構(gòu)的影響。然后應(yīng)在任意網(wǎng)站上啟用 NaCl。
構(gòu)建 NaCl 時(shí),您可能會(huì)發(fā)現(xiàn) “unity_nacl_files_3.x.x” 文件夾非常大,超過(guò) 100 MB。您可能想知道,每次運(yùn)行 NaCl 目錄時(shí)是否需要下載所有這些數(shù)據(jù),答案通常是“不需要”。Chrome Web 商店 (Store) 有兩種方式提供應(yīng)用,一種是托管應(yīng)用,一種是打包應(yīng)用。如果以打包應(yīng)用方式提供目錄,則將在安裝時(shí)將以壓縮的存檔文件形式下載所有數(shù)據(jù),然后將所有數(shù)據(jù)存儲(chǔ)在用戶磁盤上。如果以托管應(yīng)用方式提供內(nèi)容,則每次將從 web 下載數(shù)據(jù)。但是,nacl runtime 將只從 “unity_nacl_files_3.x.x” 文件夾下載相關(guān)體系結(jié)構(gòu) (i686 or x86_64),正確配置 web 服務(wù)器后,系統(tǒng)將在傳輸時(shí)壓縮數(shù)據(jù),待傳輸?shù)膶?shí)際數(shù)據(jù)大小應(yīng)為 10 MB 左右(使用物理剝離可縮減數(shù)據(jù)大?。??!眜nity_nacl_files_3.x.x” 文件夾包含可設(shè)置 Apache “.htaccess” 文件,以便在傳輸時(shí)壓縮數(shù)據(jù)。如果正在使用其他 web 服務(wù)器,可能需要自己進(jìn)行設(shè)置。
NaCl 并非支持常用 Unity 網(wǎng)頁(yè)播放器 (Web Player) 的所有功能。后續(xù)版本的 Chrome 和 Unity 將支持其中許多功能。目前,NaCl 不支持以下這些功能:
網(wǎng)絡(luò)攝像頭紋理 (Webcam Textures)
游戲桿輸入 (Joystick Input)
緩存 (Caching)
物質(zhì) (Substances)
動(dòng)態(tài)字體 (Dynamic Fonts)
除 WWW 類之外的其他類型組成的網(wǎng)絡(luò)
分析器未運(yùn)行,因?yàn)樗枰獙⒕W(wǎng)絡(luò)連接至編輯器 (Editor)。
和標(biāo)準(zhǔn)網(wǎng)頁(yè)播放器插件一樣,NaCl 目前不支持本地 C/C++ 插件。
NaCl 支持以下功能,但存在一些局限性:
深度紋理:
深度紋理適用于制作實(shí)時(shí)陰影和其他效果。Unity NaCl 支持深度紋理,但 Chrome 的 OpenGL ES 2.0 實(shí)施不支持所需的 Windows 擴(kuò)展,因此,深度紋理不適用于 OS X 和 Linux。
其他圖形功能:
NaCl 使用 OpenGL ES 2.0,不支持普通 OpenGL 中的所有擴(kuò)展。這表示有些功能受擴(kuò)展影響,如 NaCl 目前不支持線性和 HDR 光照功能。另外,著色器 (Shaders) 需要編譯為 GLSL 著色器。目前,并非所有內(nèi)置 Unity 著色器都支持此功能,例如,GLSL 著色器不支持屏幕空間環(huán)境光遮蔽 (Screen Space Ambient Occlusion)。
光標(biāo)鎖定:
支持光標(biāo)鎖定,但僅限于全屏模式。將來(lái)的 Chrome 版本計(jì)劃在窗口模式下支持光標(biāo)鎖定。
NullReferenceExceptions(空引用異常):
NaCl 不支持硬件異常處理。這表示腳本代碼中的 NullReferenceException 導(dǎo)致 NaCl 崩潰。但是,您可以將 softexceptions=”1″ 傳送至嵌入的參數(shù)(構(gòu)建開發(fā)播放器時(shí)由 Unity 自動(dòng)設(shè)置),以告訴 mono 檢查軟件中是否存在 NullReferences(空引用),如有,則將減慢腳本的執(zhí)行速度,但不會(huì)導(dǎo)致崩潰。
Google 未對(duì)使用 NaCl 設(shè)定任何系統(tǒng)要求,但 Mac 的操作系統(tǒng)至少應(yīng)為 OS X 10.6.7,我們發(fā)現(xiàn)其在舊系統(tǒng)中運(yùn)行效果不佳 – 尤其是使用舊 GPU 或圖形驅(qū)動(dòng)程序和主內(nèi)存較小的系統(tǒng)。如需使用目標(biāo)舊硬件,您會(huì)發(fā)現(xiàn) 網(wǎng)頁(yè)播放器 (Web Player) 可提供更好的性能。
設(shè)置 Screen.fullScreen 屬性即支持全屏模式,您只可在用戶釋放鼠標(biāo)按鈕的情況下進(jìn)入全屏模式。NaCl 實(shí)際上不會(huì)更改硬件屏幕分辨率,所以 Screen.resolutions 將只返回當(dāng)前的桌面分辨率。但是,Chrome 支持渲染更小的后臺(tái)緩沖區(qū),然后將位圖放大至屏幕大小。因此,請(qǐng)求更小的分辨率,然后桌面分辨率通常將支持全屏模式,但會(huì)導(dǎo)致根據(jù) GPU 縮放屏幕,而非改變?nèi)聊J健?/p>
WWW 類支持 NaCl,但需要遵循 Unity 網(wǎng)頁(yè)播放器 (Web Player) 的不同安全政策。Unity 網(wǎng)頁(yè)播放器 (Web Player) 使用與閃存相似的 crossdomain.xml 政策文件,但 Unity NaCl 必須遵循 NaCl 遵循的跨域安全機(jī)制。實(shí)際上,要訪問(wèn)托管播放器的其他域中的 html 文檔,需要將 web 服務(wù)器配置為傳送 Access-Control-Allow-Origin 響應(yīng)請(qǐng)求頭,以便讓此域托管播放器。
NaCl 支持使用 JavaScript 與網(wǎng)頁(yè)互動(dòng),并且這與使用 Unity 網(wǎng)頁(yè)播放器 (Web Player) 互動(dòng)很相似。這和從 html javascript 發(fā)送消息至 Unity 的語(yǔ)法有所不同,它必須通過(guò) NaCl 模塊。使用默認(rèn)的 Unity 生成的 html 時(shí),此代碼將可以運(yùn)行:
document.getElementById(‘UnityEmbed’).postMessage(“GameObject.Message(parameter)”);
要從 NaCl 調(diào)用瀏覽器 JavaScript 代碼,可調(diào)用 Application.ExternalCall 或 Application.ExternalEval。但是,Google 已撤銷對(duì) Chrome 應(yīng)用 Eval 函數(shù)的支持,因此,將其發(fā)布至 Chrome Web 商店也無(wú)法運(yùn)行。為解決此問(wèn)題,您可以使用 Application.ExternalEval 發(fā)送您在 unity_nacl.js moduleMessage 類函數(shù)中截獲的字符串,或?qū)?yīng)用設(shè)置為您滿意的沙箱 (Sandbox)。
NaCl 不允許訪問(wèn)用戶文件系統(tǒng),所以不會(huì)編寫日志文件。而會(huì)將所有日志輸出到標(biāo)準(zhǔn)輸出流。要在 NaCl 中查看播放器日志:
在編輯器中執(zhí)行一次構(gòu)建并運(yùn)行 (Build & Run),確保您的游戲已作為應(yīng)用程序安裝到 Chrome。
在 Mac OS X 上從終端啟動(dòng) Chrome,然后單擊其圖標(biāo)啟動(dòng)此應(yīng)用程序。您應(yīng)該可以在終端看到 Unity 播放器輸出的日志。
Windows 系統(tǒng)也一樣,但您需要設(shè)置 NACL_EXE_STDOUT 和 NACL_EXE_STDERR 環(huán)境變量,并使用不帶沙箱的選項(xiàng)啟動(dòng) Chrome。
更多精彩請(qǐng)點(diǎn)擊 http://www.gopedu.com/
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。