Cocos Creator 2.4.5 更新說明
在 Apple M1 芯片推出后,引擎組陸續(xù)收到了大家求適配的強(qiáng)烈的需求反饋,我們也在第一時(shí)間安排了 M1 芯片的適配,Cocos Creator 3.0 起已支持在 M1 芯片環(huán)境運(yùn)行,v2.4.5 緊隨其后,也正式支持了 M1 芯片環(huán)境。
上周 Cocos Creator 3.0.1 已經(jīng)正式發(fā)布,v2.4.x 將做為 LTS(長期支持)版本,提供后續(xù)兩年的持續(xù)更新,歡迎大家體驗(yàn)與使用!
支持 Apple Silicon (M1) 芯片的運(yùn)行環(huán)境
修復(fù) effect 資源有語法錯(cuò)誤時(shí),導(dǎo)致內(nèi)置 effect 加載失敗的問題 修復(fù)動(dòng)畫編輯器第一次進(jìn)入,刻度條沒有歸 0 的問題 修復(fù)編輯動(dòng)畫之后,組件上動(dòng)畫順序變化的問題 [8295] 修復(fù)在 onDestroy中移除常駐節(jié)點(diǎn)時(shí)報(bào)錯(cuò)的問題 [8314]修復(fù)火狐瀏覽器 ScrollView 滾動(dòng)速度與 Chrome 上不一致的問題 [8306] 修復(fù) iPad 上橫屏玩豎屏游戲,SafeArea 錯(cuò)誤的問題,感謝大城小胖 [224]
在 2021 年,v2.4 將繼續(xù)更新版本,提供缺陷修復(fù)和新的小游戲平臺(tái)支持,保障大家的項(xiàng)目成功上線;在 2022 年我們還將為開發(fā)者持續(xù)提供 v2.4 的關(guān)鍵問題修復(fù),保障已上線的游戲平穩(wěn)運(yùn)營!因此:
現(xiàn)有的 v2.x 項(xiàng)目可以安心繼續(xù)開發(fā),無需強(qiáng)制升級(jí) v3.0。 新項(xiàng)目則建議使用 v3.0 開發(fā),我們會(huì)不斷優(yōu)化 v3.0 的開發(fā)體驗(yàn)和運(yùn)行效率,支撐好 2D、3D 等不同品類的重度游戲順利上線。
Cocos Creator 對(duì)項(xiàng)目的升級(jí)操作是不可逆的,請(qǐng)?jiān)谏?jí)前提交或備份舊版項(xiàng)目。絕大多數(shù)項(xiàng)目通常都能自動(dòng)升級(jí),但因?yàn)轫?xiàng)目難免存在特殊性,開發(fā)者應(yīng)該根據(jù)項(xiàng)目自身需求,提前對(duì)新版本引擎進(jìn)行試用和評(píng)估。
此外,出于穩(wěn)定性考慮,建議即將上線或已上線的項(xiàng)目謹(jǐn)慎升級(jí)。
以下是升級(jí)說明,如果開發(fā)者們?cè)谏?jí)中遇到困難,歡迎向我們反饋,我們會(huì)盡力協(xié)助。
從 < 2.4.0 版本升級(jí)
cc.loader已經(jīng)不建議使用,請(qǐng)使用最新的cc.assetManager來代替,請(qǐng)參考 [資源管理模塊升級(jí)指南]子包功能已升級(jí)為 Asset Bundle,請(qǐng)參考 [資源分包升級(jí)指南] 調(diào)整了項(xiàng)目構(gòu)建后的目錄結(jié)構(gòu),調(diào)整了 BuildResults的 API,如果你使用了編輯器插件獲取編輯器構(gòu)建結(jié)果,請(qǐng)參考 [定制項(xiàng)目構(gòu)建流程升級(jí)指南]從 1.10 開始廢棄的 cc.RawAsset已被正式移除,請(qǐng)使用cc.Asset代替。由于 v2.4 不再兼容原有 1.x 項(xiàng)目中對(duì) RawAsset 類型的歷史遺留用法,建議所有要升級(jí)到 v2.4 的項(xiàng)目特別是從 1.9 版本一路升級(jí)上來的項(xiàng)目,先在任意的 1.10 ~ 2.3 版本中對(duì)編輯器編譯代碼時(shí)輸出的所有警告或報(bào)錯(cuò)都正確處理完畢,再升級(jí)到 v2.4cc.Color.fromHex已被廢棄,請(qǐng)使用cc.Color.fromHEX接口
Effect 中的 CCTexture2D,CCTexture2DRGB方法已被廢棄,請(qǐng)改用CCTexture,CCTextureRGBVec3.FRONT已被廢棄,請(qǐng)改用Vec3.FORWARD
從 < 2.3.0 版本升級(jí)
從 2.3.0 開始,定制安卓原生工程時(shí),需注意 Android 與 Android Instant 使用了同一個(gè)構(gòu)建模板。
如果是 Android 平臺(tái)單獨(dú)使用的代碼請(qǐng)放入 app/src目錄, 單獨(dú)使用的第三方庫請(qǐng)放入app/libs目錄。如果是 Android Instant 單獨(dú)使用的代碼和第三方庫請(qǐng)分別放入 game/src,game/libs目錄。如果是 Android 和 Android Instant 共用的代碼和第三方庫,請(qǐng)分別放入根目錄底下的 src目錄和libs目錄。proj.android-studio目錄下jni/CocosAndroid.mk和jni/CocosApplication.mk文件,主要用于引擎相關(guān)的配置,建議不要修改。開發(fā)者如果需要修改配置請(qǐng)參考以下內(nèi)容:Android 平臺(tái)請(qǐng)?jiān)?nbsp; app/jni/Android.mk和app/jni/Application.mk中修改;Android Instant 請(qǐng)?jiān)? game/jni/Android.mk和game/jni/Application.mk中修改。
此外,在 Cocos Creator 編譯 Android 時(shí)會(huì)默認(rèn)執(zhí)行 assembleRelease/Debug,編譯 Android Instant 時(shí)會(huì)執(zhí)行 instant:assembleRelease/Debug。
如自定義了音頻前后臺(tái)切換時(shí)的暫停邏輯,升級(jí)到 v2.3.0 后請(qǐng)移除。
目前 Creator 游戲在所有平臺(tái)上前后臺(tái)互相切換時(shí),都會(huì)在內(nèi)部自動(dòng)暫停和恢復(fù)音頻。
如果開發(fā)者之前有對(duì)這一塊進(jìn)行過定制,監(jiān)聽并執(zhí)行了 cc.audioEngine.pause()/resume() 之類的音頻操作,可能會(huì)和引擎默認(rèn)行為沖突。
如果有遇到相關(guān)的音頻問題,只需移除相應(yīng)的定制代碼即可。
從 2.0 - 2.3.0 版本升級(jí)
從 v2.3.0 開始,Canvas 組件不再負(fù)責(zé)將 Canvas 節(jié)點(diǎn)尺寸設(shè)為屏幕大小,此行為將結(jié)合 Widget 組件實(shí)現(xiàn)。為保證兼容性,v2.0 項(xiàng)目升級(jí)后,Canvas 所在節(jié)點(diǎn)會(huì)自動(dòng)添加 Widget 組件。(從 v1.x 的項(xiàng)目升級(jí)無此問題)
從 < 2.2.0 版本升級(jí)
從 v2.2.0 開始,我們強(qiáng)化了內(nèi)存管理機(jī)制,現(xiàn)在要求用戶通過代碼動(dòng)態(tài)創(chuàng)建且獨(dú)立于場(chǎng)景節(jié)點(diǎn)樹的 cc.Node 必須通過 destroy() 釋放,否則引擎無法知道何時(shí)回收這類節(jié)點(diǎn)的內(nèi)存,會(huì)導(dǎo)致內(nèi)存泄露。
如原先手動(dòng)從場(chǎng)景中移除的節(jié)點(diǎn),在不需要用到的時(shí)候也需要統(tǒng)一 destroy():// 假設(shè) testNode 是場(chǎng)景中的某個(gè)節(jié)點(diǎn),若之前被手動(dòng)移出場(chǎng)景了,如testNode.parent = null;// 或者testNode.removeFromParent(true);// 或者parentNode.removeChild(testNode);// 若往后 testNode 還會(huì)再次用到,則無需手動(dòng) destroy 該節(jié)點(diǎn)// 否則應(yīng)該手動(dòng)調(diào)用testNode.destroy();如原先通過 cc.removeSelf這個(gè) action 銷毀節(jié)點(diǎn),請(qǐng)改為使用cc.destroySelf。如原先通過 cc.NodePool管理節(jié)點(diǎn),則不受影響。
從 v2.2.0 開始,我們不再建議你使用節(jié)點(diǎn)的 Skew 功能。
Skew 通常用作在 2D 引擎中模擬 3D 效果,隨著 Cocos Creator 對(duì) 3D 節(jié)點(diǎn)的深入支持,Skew 效果已經(jīng)完全可以由 3D 節(jié)點(diǎn)來實(shí)現(xiàn)。所以為了統(tǒng)一使用體驗(yàn),進(jìn)一步優(yōu)化引擎底層實(shí)現(xiàn),我們廢棄了 Skew 屬性。
不過我們依舊會(huì)保留一段時(shí)間內(nèi)的向下兼容,開發(fā)者可在舊項(xiàng)目中延續(xù)原有做法。后續(xù)我們將進(jìn)一步完善兼容方式和升級(jí)案例,擇機(jī)正式移除 Skew 功能。
從 < 2.0 版本升級(jí)
打開 v1.x 項(xiàng)目的話,場(chǎng)景等所有資源將會(huì)自動(dòng)升級(jí),代碼中的廢棄接口從 v2.3.3 開始將會(huì)在保持兼容的基礎(chǔ)上同步輸出報(bào)錯(cuò)。升級(jí)方式可參考 [1.10 資源升級(jí)指南] 和 [2.0 升級(jí)指南] 進(jìn)行調(diào)整。
[資源管理模塊升級(jí)指南]
https://docs.cocos.com/creator/manual/zh/release-notes/asset-manager-upgrade-guide.html
[資源分包升級(jí)指南]
https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
[定制項(xiàng)目構(gòu)建流程升級(jí)指南]
https://docs.cocos.com/creator/manual/zh/release-notes/build-extend-upgrade-guide.html
[1.10 資源升級(jí)指南]
https://docs.cocos.com/creator/manual/zh/release-notes/raw-asset-migration.html
[2.0 升級(jí)指南]
https://docs.cocos.com/creator/manual/zh/release-notes/upgrade-guide-v2.0.html
往期精彩



