佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Cocos Creator v1.6正式版發(fā)布啦!

Cocos Creator v1.6正式版發(fā)布啦!

熱門標(biāo)簽:檢查注冊(cè)表項(xiàng) 企業(yè)做大做強(qiáng) 百度AI接口 萬科 電銷業(yè)務(wù) 美團(tuán) 企業(yè)認(rèn)證 鐵路電話系統(tǒng)
 

Cocos Creator v1.6 版本發(fā)布了!感謝社區(qū)對(duì)這個(gè)版本漫長(zhǎng)測(cè)試周期的耐心等待和對(duì)測(cè)試版的積極試用和反饋。我們?cè)谶@個(gè)版本更新中繼續(xù)連結(jié)了優(yōu)化性能和提升體驗(yàn)的傳統(tǒng),而且這個(gè)版本還是后續(xù)一系列重要的引擎進(jìn)化的開始。

我們希望改善開發(fā)者編纂器使用體驗(yàn)的同時(shí),不停提升 JS 和 C++ 引擎的性能,解決開發(fā)者最關(guān)心的包體、緩存、網(wǎng)絡(luò)通訊等問題。基于這個(gè)目標(biāo),我們?cè)?v1.6 版本中加入了下列重要功能。

特色功能

- JavaScript-Binding 綁定層升級(jí),,大幅提升安卓平臺(tái)性能

- 預(yù)覽游戲時(shí)腳本免打包,改動(dòng)腳本后瞬間刷新游戲

- 批量編纂節(jié)點(diǎn)和組件屬性

- web平臺(tái)構(gòu)建時(shí)自動(dòng)將版本加入資源文件名

- 升級(jí) iOS 平臺(tái)的 WebSocket 庫,解決大部分平臺(tái)專屬網(wǎng)絡(luò)通訊問題

JavaScript-Binding 綁定層全面升級(jí)

在這個(gè)版本中,我們升級(jí)了從 JavaScript 腳本到原生平臺(tái) C++ 綁定的中間層,一方面我們將原生平臺(tái)使用的 JavaScript 引擎 SpiderM 從 v33 版本升級(jí)到了 v52 版本,大幅度提高了安卓平臺(tái)的 JavaScript 運(yùn)行性能(由于 iOS 平臺(tái)上不支持開啟 JIT 所以效果并不明顯);另一方面我們?cè)谶@個(gè)版本開始對(duì)綁定層接口進(jìn)行重構(gòu),目標(biāo)是:

- 提供完全抽象的 JSB 綁定層 API,獨(dú)立于 JavaScript 引擎,用戶的綁定代碼將不再受未來 JS 引擎升級(jí)影響

- 支持平臺(tái)原生的 JS 引擎,包孕 Android 平臺(tái)的 v8,iOS 平臺(tái)的 JavaScriptCore。

在升級(jí)綁定層后,我們不但為后續(xù)開發(fā)者的 C++ 層綁定開發(fā)提供了不變的環(huán)境,并且支持原生平臺(tái)的 JS 引擎會(huì)使得構(gòu)建原生版本時(shí)的包體大幅減小,因?yàn)椴辉傩枰獙?SpiderM 引擎庫加入到發(fā)布版本中。

預(yù)覽游戲時(shí)腳本免打包

由于腳本模塊化加載的需要,我們從 Cocos Creator 第一個(gè)版本開始就對(duì)用戶的腳本進(jìn)行編譯打包,但對(duì)于規(guī)模龐大、動(dòng)輒幾百個(gè)腳本的項(xiàng)目來說,每次修改任何腳本都會(huì)觸發(fā)整個(gè)編譯打包流程,會(huì)使得修改腳本后的等待時(shí)間非常長(zhǎng)。為了解決這個(gè)問題,我們從 v1.6 開始引入了編纂器環(huán)境下腳本免打包的模塊化系統(tǒng),可以在預(yù)覽環(huán)境下別離加載單個(gè)文件的腳本。對(duì)任何腳本的改動(dòng)將只觸發(fā)該腳本自己的編譯流程,使得開發(fā)腳本后刷新預(yù)覽的周期縮短到1~2秒,大大提升開發(fā)效率。

目前構(gòu)建后的腳本仍然需要進(jìn)行打包,因?yàn)榻K端瀏覽器里沒有相應(yīng)的加載環(huán)境。我們會(huì)在后續(xù)繼續(xù)研究構(gòu)建發(fā)布時(shí)也能連結(jié)每個(gè)腳本文件獨(dú)立存在的構(gòu)建模式,來便利需要?jiǎng)e離更新腳本的開發(fā)者更容易安排游戲版本。

批量編纂節(jié)點(diǎn)和組件屬性

編纂 UI 場(chǎng)景時(shí),經(jīng)常會(huì)遇到需要選中一些節(jié)點(diǎn)并批量修改他們的一些屬性的需要,這個(gè)版本我們加入了屬性檢查器的批量編纂功能。

多選節(jié)點(diǎn)后這些節(jié)點(diǎn)上共享的組件和屬性就可以進(jìn)行批量編纂了,當(dāng)差別節(jié)點(diǎn)的某個(gè)屬性值差別時(shí),選中這些節(jié)點(diǎn)后,屬性檢查器上這個(gè)屬性值會(huì)顯示為 -, 修改這個(gè)屬性會(huì)讓所有選中節(jié)點(diǎn)上該屬性都釀成同樣的值。

web 平臺(tái)構(gòu)建時(shí)為資源文件名加入版本號(hào)

對(duì) H5 游戲開發(fā)者來說,有效利用瀏覽器的緩存機(jī)制,制止用戶重復(fù)下載資源,而且在更新游戲資源時(shí)確保更新緩存的資源版本是非常重要的。我們?cè)谶@個(gè)版本的構(gòu)建發(fā)布面板里增加了 **md5 cache** 構(gòu)建選項(xiàng),勾選后會(huì)在構(gòu)建時(shí)為所有資源文件名增加該文件的 md5 碼。這樣在更新游戲版本時(shí),按照文件名的差別,用戶的瀏覽器會(huì)自動(dòng)重新下載 md5 改變了的資源,在最大限度使用緩存節(jié)省流量的情況下確保版本的一致性。

iOS 平臺(tái)上使用 SocketRocket 代替之前的 WebSocket 實(shí)現(xiàn)

我們用 facebook 開發(fā)的 [SocketRocket 庫](https://github.com/facebook/socketrocket) 替換了之前一直在 cocos2d-x 和 Cocos Creator C++ 引擎中使用的 libWebsocket 庫,這個(gè)全新的實(shí)現(xiàn)支持以下特性:

- SocketRocket 提供異步 API,更符合通訊習(xí)慣

- 封裝了跨線程通訊

- 網(wǎng)絡(luò)狀態(tài)變換時(shí)不會(huì)造成連接關(guān)閉

- 鎖定手機(jī)設(shè)備屏幕不再造成報(bào)錯(cuò)

- 不再依賴包體較大的 openssl 庫

- 使用 wss 連接時(shí)不再需要當(dāng)?shù)?CA 根證書

后續(xù)版本中我們會(huì)對(duì) socket.io 的原生實(shí)現(xiàn)也進(jìn)行進(jìn)一步的優(yōu)化,希望能為開發(fā)者們提供一個(gè)簡(jiǎn)單、不變的網(wǎng)絡(luò)通訊編程環(huán)境。

完整改動(dòng)列表

- [Audio] [Breaking] 修復(fù) `audioEngine.stop` 會(huì)觸發(fā) finish 事件回調(diào)的問題,現(xiàn)在 setFinishCallback 設(shè)置的 callback 只有在自然播放結(jié)束的時(shí)候

編纂器

- [Editor] 加入預(yù)覽游戲時(shí)免編譯腳本的模式,免編譯模式下 VSCode 的調(diào)試配置需要通過開發(fā)者菜單更新

- [Editor] 移除內(nèi)置代碼編纂器,默認(rèn)雙擊文本文件時(shí)會(huì)使用系統(tǒng)默認(rèn)的應(yīng)用打開

- [Editor] 修復(fù) Windows 上編纂器運(yùn)行路徑和項(xiàng)目路徑不在同一個(gè)驅(qū)動(dòng)器時(shí)加載腳本路徑錯(cuò)誤的問題

- [Editor] 修復(fù)導(dǎo)出場(chǎng)景資源時(shí)引用量過大可能導(dǎo)致卡死的問題

- [Editor] 修復(fù) require 第三方庫時(shí)的報(bào)錯(cuò) `can not find module for path : undefined`

- [Editor] editor-input 和 editor-textarea 控件添加 maxLength 支持

- [Editor] 禁止彈出和關(guān)閉部分核心面板,包孕場(chǎng)景編纂器、資源辦理器和節(jié)點(diǎn)樹。

- [Editor] 修復(fù) TS 腳本在重命名后,舊的不會(huì)刪掉導(dǎo)致腳本名稱重復(fù)的問題。

- [Editor] 修復(fù)場(chǎng)景生存時(shí)仍有 “Cannot read property ‘_prefab’ of null” 的報(bào)錯(cuò)

- [Editor] 修復(fù) property 裝飾器在新版 VSCode 中的報(bào)錯(cuò)

- [Editor] 修復(fù)項(xiàng)目中腳本過多時(shí)會(huì)出現(xiàn) `too many open files` 的問題

- [Editor] 修復(fù)編纂器中無法通過 url 加載資源依賴的 raw asset 的問題,修復(fù)編纂器無法正確加載 TSX 資源的問題

- [Editor] 修復(fù)編纂器里腳本文件加載挨次不固定的問題

- [Editor] 修復(fù)切換場(chǎng)景編纂模式時(shí)可能出現(xiàn) `Possible EventEmitter memory leak detected` 的報(bào)錯(cuò)問題

- [Editor] 修復(fù)創(chuàng)建 ToggleGroup 時(shí)報(bào)錯(cuò)的問題

- [Editor] 修復(fù)選中編纂 plist 中的 spriteFrame 時(shí)可能 Sprite Editor 窗口會(huì)卡死的問題

- [Build] 構(gòu)建 Web 端時(shí)加入插入 eruda 的選項(xiàng)

- [Build] 修復(fù) windows 平臺(tái)上構(gòu)建 web 時(shí)使用 md5 cache 報(bào)錯(cuò)的問題。

- [Build] 構(gòu)建時(shí)壓縮和合并資源 uuid,以優(yōu)化 settings.js 資源索引文件的體積。

- [Build] 修復(fù)某些項(xiàng)目會(huì)在 build-raw-assets 時(shí)卡住不動(dòng)的問題

- [Build] 修復(fù)構(gòu)建非調(diào)試版本時(shí) settings.js 未被壓縮的問題

- [Build] 修復(fù)構(gòu)建時(shí)添加 md5 cache 導(dǎo)致部分組件無法正確獲取資源引用的問題

- [Build] 修復(fù)構(gòu)建 Android 時(shí)每次都會(huì)重新編譯的問題

- [Build] 修復(fù) TTF label 在使用 md5 cache 無法正確下載資源與加載字體的 bug

- [Build] 修復(fù)較低版本 Xcode 在編譯 iOS/Mac 工程時(shí)可能遇到的 `undefined symbol: NSStreamNetworkServiceTypeCallSignaling` 編譯失敗問題

- [Build] 在 web 構(gòu)建面板上面添加 md5Cache 選項(xiàng),為資源文件名增加 md5 編碼,用于正確更新客戶端資源緩存。

標(biāo)簽:煙臺(tái) 鄭州 pos機(jī)業(yè)務(wù) 烏蘭察布 亳州 福州 柳州 呂梁

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Cocos Creator v1.6正式版發(fā)布啦!》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    淮阳县| 同江市| 定陶县| 马尔康县| 江山市| 天台县| 连云港市| 无锡市| 五台县| 江华| 宁晋县| 子洲县| 阿克陶县| 巩留县| 栖霞市| 洪洞县| 云梦县| 新龙县| 太谷县| 南陵县| 平塘县| 湘潭市| 成安县| 卓资县| 乌拉特中旗| 固原市| 永昌县| 房产| 南乐县| 桃源县| 松江区| 嫩江县| 新源县| 玛曲县| 施甸县| 兴业县| 葫芦岛市| 永清县| 罗定市| 威信县| 嘉祥县|