Cocos Creator 2.2.1 正式發佈

爲了讓你的作品在每一個平臺上都表現出色,Cocos Creator 每天都在全力奔跑。

 

在之前的 v2.2.0 版本中,我們着力優化了原生平臺的渲染性能,有大量的開發者積極升級和體驗,這給我們帶來了極大的鼓勵和信心,非常感謝大家對 Cocos Creator 新版本的關注。通過論壇、沙龍、企業服務等渠道我們收到了大家反饋的問題和改進建議,對於產品尚未完善之處,向大家表示誠摯的歉意,也衷心感謝所有與我們耐心溝通,提交反饋,與我們共同成長的夥伴們,Cocos 會一如既往地優化產品的性能與使用體驗。經過一個多月時間緊張迭代,v2.2.1 如期發佈了。

v2.2.1 在 v2.2.0 的基礎上進行了大量的體驗優化和缺陷修復,更全面地優化了性能,同時加入了對支付寶小遊戲的支持。建議所有版本的開發者升級,升級之前請根據項目情況進行必要的技術評估和版本備份!

 

What's New       

 

1. 支持支付寶小遊戲

 

隨着小遊戲的發展,小遊戲領域也越來越被更多廠商所重視,新的平臺也意味着新的機遇,作爲國內的電商巨頭,支付寶近期開放了小遊戲的支持,Cocos Creator 也在第一時間進行了適配,並在 v2.1.4 整合了發佈到支付寶小遊戲的能力。

今日發佈的 Cocos Creator v2.2.1 也同步支持了支付寶小遊戲,使用說明請參考《發佈到支付寶小遊戲》

 

2.支持微信小遊戲引擎插件

遊戲引擎插件是微信 7.0.7 版本新增的一項功能,能極大減少遊戲的下載時間。對於這個重大利好的功能,Cocos 在第一時間就發佈了對應的編輯器插件,提供了對 Creator 老版本的有力支持。

目前此功能正式合併到了 v2.2.1 中,開發者使用起來會更加便捷。只需在 構建發佈 面板中,勾選 允許分離引擎,然後正常 構建發佈 即可,無需其它人工操作。詳見《微信小遊戲引擎插件使用說明》

 

3.Camera 組件增強

  • 新增了 Align With Screen 屬性,勾選後攝像機不論處於 2D/3D 節點模式,都會將視窗大小自動保持爲整個屏幕的大小。取消勾選的話,開發者可以自由設置 Ortho Size(2D/3D)或者 FOV(3D)。
  • 在 2D 模式下也提供了和 3D 模式相同的 Rect 屬性,用於指定攝像機繪製在屏幕上的哪個區域,便於實現類似小地圖那樣的 Viewport。

 

Improvements       

  • 優化原生平臺上調用 addChild 時的性能,提升場景切換速度
  • 支持自動釋放運行時的 JSON 資源包,優化內存佔用
  • TiledMap 支持 TileSet 包含多貼圖格式
  • 優化原生 DragonBones 和 Spine 顏色更新性能(感謝 wyf)
  • 在 cc.director 中增加獲取遊戲運行總時間的 API getTotalTime()
  • 支持構建小米快遊戲時啓用 md5Cache 功能
  • 適配 iOS 13 瀏覽器對重力感應權限的請求操作
  • 適配 iPadOS 13 的平臺檢測(感謝 krapnikkk)
  • 命令行構建增加 --force 參數用於跳過項目升級提示
  • 優化原生上的 VideoPlayer 和 WebView 的內存釋放時機
  • 支持在原生上開啓 WebSocket 服務器
  • 完善場景文件中的 TRS 浮點數存儲精度,提升用戶體驗
  • 完善編輯器下 Label 和 RichText 設置字體時的操作體驗
  • 完善資源面板的文件夾排序

 

Editor   

  • 修復保存設置後,切換項目後設置被還原的問題
  • 修復構建微信小遊戲時,對應平臺的壓縮紋理設置不生效的問題
  • 修復重置編輯器佈局後,重命名文件失敗的問題
  • 修復 Sprite Editor 未能正確顯示旋轉後的 plist 文件的問題
  • 修復節點 highlight 時層級管理器不會自動定位的問題
  • 修復 3D 點光源添加到 5 個以上,編輯器報錯的問題
  • 修復插件商店無法打開的問題
  • 修復資源導出時的報錯
  • 修復構建原生平臺時朝向可能設置錯誤的問題
  • 修復自定義構建流程時 md5 重命名在 finish-build 事件之後觸發的問題
  • 修復某些情況下造成 Prefab 循環引用,導致參數丟失的問題
  • 修復遊戲預覽無法完全顯示場景內容的問題
  • 修復刪除紋理壓縮格式後,資源應用按鈕沒有激活的問題
  • 修復從 v2.1.x 升級到 v2.2,旋轉角度可能出錯問題
  • 修復升級到 v2.2 後 Mask 的 Image Stencil 效果可能不對的問題

 

Engine   

  • 修復 v2.2.0 節點 Skew 無效的問題
  • 修復子節點 group 與父節點 group 同步的問題
  • 修復自定義材質實例化之後屬性無法設置成功的問題(感謝 Elk953)
  • 修復在 QtWebview 上 ArrayBuffer.isView 未定義導致的報錯
  • 修復低端設備上可能不支持高精度 highp 導致的錯誤
  • 修復了某些平臺上游戲第一幀 deltaTime 可能爲負值的問題 
  • 修復 Sprite 組件 Type 選擇 Filled,Filled Type 選擇 Radial,修改 filledRange 時表現異常的問題
  • 修復 Label 組件在 CHAR 模式下,Vertical Align 設爲 Top 或 Bottom 時的對齊問題
  • 修復 EditBox 在 editing-did-began 回調裏無法設置 editBox.string 的問題
  • 修復 Button 組件在 Transition 爲 Scale 時,設置節點 scale 無效的問題
  • 修復粒子系統勾選 Auto Remove On Finish 後,未勾選 Play On Load 時的播放問題
  • 修復粒子系統播放後第一幀可能爆裂的問題
  • 修復使用系統字體時,Font Family 爲空導致的渲染問題
  • 修復當 Spine 還未加載,用戶調用 cache 相關接口會報錯的問題
  • 修復 TiledMap Object Group 紋理座標不正確的問題
  • 修復 TiledMap 45 度角 Object Group 圖片位置不正確的問題
  • 修復 TiledMap 在同一幀插入刪除再插入用戶節點,會報組件已存在的問題
  • 修復 TiledMap 圖像圖層層級錯誤的問題
  • 修復 TiledMap setTiledTileAt() 接口無效的問題
  • 修復 VideoPlayer 在 show all 佈局下豎屏顯示的問題
  • 修復當播放其他 video 時,VideoPlayer 組件寬高無法及時更新的問題
  • 修復在 once 事件回調時執行 off 方法報錯的問題
  • 修復 ttf 延遲加載的問題
  • 修復重複加載場景報錯之後可能導致場景無法加載的問題
  • 修復手動先釋放資源,再移除節點造成紋理丟失的問題
  • 修復 cc.rotateTo 在部分情況下無效的問題
  • 修復 cc.rotateBy 在部分情況下無效的問題

 

Native

  • 修復 Mask 某些情況下失效的問題
  • 修復粒子系統顏色透明度過渡不正確的問題
  • 修復 Camera 勾選渲染多個 stage 時渲染錯誤問題
  • 修復陀螺儀無法關閉的問題
  • 修復切換前後臺時 audioEngine 可能導致崩潰的問題
  • 修復 jsb.Downloader 註冊回調報錯的問題
  • 修復斷點續傳下載失敗的問題(感謝 gaolizheng)
  • 修復 TiledMap 多貼圖的情況下,顯示不正確的問題
  • 修復 DragonBones 緩存模式事件未觸發的問題
  • 修復 Spine 在 Cache 模式下事件回調與 Web 平臺參數不一致的問題
  • 修復 Spine 在 Cache 模式下,使用裁剪動畫,且裁剪造成頂點數量增加時,可能導致緩衝區溢出的問題
  • 修復當節點 scale 不爲 1 時,EditBox、WebView、VideoPlayer 顯示位置出現偏移的問題
  • 修復 EditBox 輸入時切換場景導致卡住的問題
  • 修復 VideoPlayer 報錯的問題
  • 修復 VideoPlayer 更換 url 之後,會自動切全屏的問題
  • 修復 videoPlayer.resume() 調用無效的問題
  • 修復 WebView 的 evaluateJS() 無效的問題
  • 修復加載 plist 顯示的粒子效果不正確的問題
  • 修復剔除 Motion Streak 模塊會報錯的問題
  • 修復使用 Graphics 組件進行多次繪製之後,已經填充的線條會被自動清除的問題
  • 修復桌面端屏幕 resize 之後,屏幕適配的問題
  • 修復 Mac 上截屏顯示錯誤的問題
  • 修復 Windows 下 3D 模型可能顯示錯誤的問題
  • 修復 iOS 和 Android 上屏幕旋轉失效的問題
  • 修復 iOS 鎖屏後解鎖可能導致卡住的問題
  • 修復 iOS 上 WebView 加載網頁無效的問題
  • 修復 Android EditBox 彈出時會將 view 往上推的問題
  • 修復 Android 上下載時 onProgress 傳入參數錯誤問題

 

Mini Game

  • 修復 EditBox 在拉起狀態下重複調用 showKeyboard 的問題
  • 修復當節點 scale 不爲 1 時,VideoPlayer 顯示位置出現偏移的問題
  • 修復部分小遊戲平臺 cc.sys.os 沒定義的問題
  • 修復 vivo OPPO 上 Label 頂部被截斷的問題
  • 修復支付寶上音頻播放之後重新播放的問題
  • 修復支付寶上加載資源的報錯
  • 修復支付寶 iOS 上的音頻加載失敗的問題
  • 修復微信 iOS 9 上加載引擎的報錯
  • 修復微信上預加載失敗後沒有回調的問題
  • 修復微信上 XHR.abort() 調用失敗的問題
  • 修復小遊戲子包中的圖片啓用壓縮紋理時,無法正常構建子包的問題
  • 修復小遊戲子域中 BMFont 的渲染重疊及使用 Cache mode 的報錯問題

 

DEPRECATION

從 v2.2.0 開始,我們不再建議您使用節點的 Skew 功能。Skew 通常用在 2D 引擎中模擬 3D 效果,隨着 Cocos Creator 對 3D 節點的深入支持,Skew 效果已經完全可以由 3D 節點來實現。所以爲了統一使用體驗,進一步優化引擎底層實現,我們廢棄了 Skew 屬性。不過我們依舊會保留一段時間內的向下兼容,開發者可在舊項目中延續原有做法。後續我們將進一步完善兼容方式和升級案例,擇機正式移除 Skew 功能。

 

KNOWN ISSUES

  • 由於 FBX SDK 的兼容性問題,請確保 Windows 版本的編輯器安裝在英文路徑下,否則可能會無法打開編輯器。此問題將在後續版本修復。
  • 目前在構建原生平臺時,不能剔除 Audio 模塊,否則將無法正常編譯。
  • 目前 Mask 組件嵌套時,可能造成點擊事件穿透。如需嵌套 Mask 請參考[#5749] 對引擎進行定製。
  • 目前粒子系統會按照正方形來渲染紋理,如果使用的紋理不是正方形則會被拉伸。請儘量使用正方形紋理,並自定義 SpriteFrame 的 trim 區域,避免空白區域被剔除,或者參考[#5666]對引擎進行定製。
  • 目前使用 Graphics 繪製的頂點數量超過 65535 之後,將無法進行繪製,如有需要參考[#206] 和[#1935]對引擎進行定製。
  •  

 

升級說明

  • 打開 1.x 項目的話,場景等所有資源將會自動升級,代碼如有警告或報錯,可參考《1.10.0 資源升級指南》《2.0.0 升級文檔》進行調整。
  • 2.0 以上項目可直接無縫升級。
  • 從 2.2.0 開始,我們強化了內存管理機制,現在要求用戶通過代碼動態創建且獨立於場景節點樹的 cc.Node 必須通過 destroy() 釋放,否則引擎無法知道何時回收這類節點的內存,會導致內存泄露。
  • 此外,手動從場景中移除的節點,在不需要用到的時候也需要統一 destroy。如果通過 cc.NodePool 管理節點,則不受影響。
// 假設 testNode 是場景中的某個節點,若之前被手動移出場景了,如
testNode.parent = null;
// 或者
testNode.removeFromParent(true);
// 或者
parentNode.removeChild(testNode);
// 若往後 testNode 還會再次用到,則無需手動 destroy 該節點
// 否則應該手動調用
testNode.destroy();

 

以上就是 Cocos Creator v2.2.1 更新內容,良好的品質離不開細心的打磨,Cocos 會秉持腳踏實地的精神,穩步提升產品品質。

 

歡迎小夥伴們繼續通過論壇、GitHub、Cocos 企業服務等渠道向我們提交使用反饋!

 

Cocos Creator 下載:

https://www.cocos.com/creator

 

Cocos 中文社區:

https://forum.cocos.org/c/Creator

 

我就知道你“在看”▼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章