感謝所有開發者對 Cocos Creator 3D v1.0.0 的支持,我們興奮地發現發佈不到三週,就有幾款 3D 小遊戲上線了,多少也算驗證了我們在工作流效率上所付出的努力。相信目前的 Cocos Creator 3D 對於製作純 3D 小遊戲已經不是問題,歡迎更多開發者嘗試。
部分 3D 小遊戲,在微信小程序中搜索即可體驗!
雖然目前上線的這些遊戲還比較簡單,不過我們相信,更多高質量的作品正在開發中,我們合作的幾個項目也進入了到中後期,一經發布一定會告訴大家。
也非常感謝社區中無私奉獻各種教程 Demo 的同學:Blake 老師的直播,張曉衡在" Creator 星球開發社區"公衆號裏面的分享,“一枚小工”和“白玉無冰”在同名公衆號分享的教程,等等,真的很感激我們有這樣一個優秀的技術社區。
以下是 Cocos Creator 3D v1.0.1 的詳細發佈說明,歡迎大家升級並反饋問題。
重點功能介紹
1. 微信插屏配置
正式支持微信插屏配置,只需要構建時選擇替換插屏,提交項目信息即可自動替換微信插屏圖片,可以選擇在插屏下方保留一個不顯眼 Powered by Cocos Creator 3D 水印,如果您這麼做我們會非常感激。
2. 支持物理材質編輯
目前的功能還比較簡單,只支持 Friction 和 Restitution。
3. Effect 資源面板
Effect 的資源面板現已支持預覽編譯後的 shader 代碼,並支持可視化編輯 shader 的每個 define。
4. 優化導入和數據遷移的效率
我們測試的一個超大型項目,數據遷移過程中的內存使用從 4-6 GB 降低到了 0.5-1.2GB,時間從降低到了原本的 10 - 30%。
5. Raycast 支持
v1.0.1 在物理模塊 API 中支持對 Collider 進行 Raycast,示例代碼如下:
import { systemEvent, SystemEventType, CameraComponent, Touch, EventTouch, geometry, PhysicsSystem, Layers } from "cc";
let ray = new geometry.ray();
let maxDistance = 100;
let camera: CameraComponent = null; // 找到主 Camera 組件
function onTouchStart (touch: Touch, event: EventTouch) {
camera.screenPointToRay(touch._point.x, touch._point.y, ray);
// 找到所有結果
if (PhysicsSystem.instance.raycast(ray, Layers.Enum.DEFAULT, maxDistance)) {
const r = PhysicsSystem.instance.raycastResults;
for (let i = 0; i < r.length; i++) {
const item = r[i];
const collider = item.collider;
const node = collider.node;
// 做需要的處理
}
}
// 找到最近的匹配結果,兩個 API 性能是一樣的
if (PhysicsSystem.instance.raycastClosest(ray, Layers.Enum.DEFAULT, maxDistance)) {
const result = PhysicsSystem.instance.raycastClosestResult;
const collider = result.collider;
const node = collider.node;
// 做需要的處理
}
}
systemEvent.on(SystemEventType.TOUCH_START, onTouchStart);
其他編輯器更新日誌
[FEATURE] 偏好設置裏支持指定不同類型資源的打開程序:代碼類資源,圖片類資源
[FEATURE] 修改節點 layer 屬性時,詢問是否遞歸修改所有子節點
[FEATURE] FBX 以及 glTF 數據不存在的時候顯示默認值
[FEATURE] 對 Meta 增加換行符檢測,如果文件內有 CRLF 則默認使用 CRLF 換行,沒有則使用 LF
[IMPROVE] 優化了資源導入、遷移的速度
[IMPROVE] 優化盒子碰撞器的編輯操作體驗
[IMPROVE] 支持全局的自定義引擎位置配置
[IMPROVE] 在編輯器環境下不預編譯 shader
[IMPROVE] 將光源組件集合在獨立的組件子菜單項中
[IMPROVE] 優化資源搜索面板使用以及統一 icon 數據管理
[IMPROVE] 去掉新建腳本名稱中的空格並減少樹形縮進
[IMPROVE] 移動資源時增加了一個是否覆蓋原文件的對話框
[IMPROVE] 優化 prefab 資源丟失時的展示
[IMPROVE] 防止 prefab 不指向自己
[IMPROVE] 優化資源很多資源樹很長的情況下滾動有上下空白區的問題
[IMPROVE] 優化文件夾在自身粘貼的操作
[IMPROVE] 去掉刪除資源時的因文件系統產生的阻塞
[IMPROVE] 增加複製已刪除資源時的容錯
[IMPROVE] 對資源預覽面板中前進後退操作增加容錯判斷
[IMPROVE] 優化 SphereLight 組件界面
[IMPROVE] 動畫編輯器選中關鍵幀後自動選中對應節點,選中對應的屬性軌道
[IMPROVE] 動畫編輯器 clip 發生變化後檢查並選中關鍵幀
[IMPROVE] 優化動畫編輯器中 Rotation 顯示
[IMPROVE] 記憶節點樹層級的展開、摺疊狀態,支持 alt 鍵全部摺疊或展開
[IMPROVE] 數組摺疊 UI 上 +/- 有歧義,修改爲倒三角
[IMPROVE] 優化 fbx/gltf 資源的材質編輯效果
[IMPROVE] 優化 fbx/gltf 資源中的貼圖導入流程
[IMPROVE] 優化構建面板操作以及支持單獨編譯引擎
[IMPROVE] 構建時清空 Loader 緩存
[IMPROVE] 調整編輯器 Camera 的近裁剪面爲 0.1
[IMPROVE] 禁止 SkeletonAnimationComponent 的 clips 的編輯
[IMPROVE] 場景拖拽的時候,不響應任何其他的事件
[IMPROVE] 添加反序列化容錯
[FIX] 修復項目配置無法被保存的問題
[FIX] 修復資源遷移的時候導致的內存泄漏
[FIX] 修復資源遷移失敗導致死循環的問題
[FIX] 修復場景未做任何修改卻產生數據差異提示需要保存的問題
[FIX] 修復構建過程中由於內存增長導致奔潰的問題
[FIX] 修復場景加載帶有 MissingScript 的數據卡死問題
[FIX] 修復場景文件不存在時保存場景無效的問題
[FIX] 修復 HDR 模式下的 gizmo 渲染問題
[FIX] 修復節點移除時子節點的 gizmo 仍然殘留在編輯器上的問題
[FIX] 修復 gizmo 的受光表現
[FIX] 修復 undo 後陰影丟失的問題
[FIX] 修復並升級 glTF importer 的問題
[FIX] 修復某些 glTF-embedded 資源導入數據錯誤的問題
[FIX] 修復包含內嵌貼圖資源的 FBX 文件的導入問題
[FIX] 修復模型導入時 normal 和 tangents 數據導入問題
[FIX] 修復多 UV 模型的導入問題
[FIX] 修復導入模型時的貼圖搜索算法
[FIX] 修復資源面板列表偶現顯示不正確的問題
[FIX] 修復導入操作系統上創建的文件夾時沒有保留文件夾裏 meta 文件的問題
[FIX] 修復父資源拖拽進 inspector asset 編輯框無效問題
[FIX] 修復 uuid 衝突的時候,誤將舊資源 uuid 替換的問題
[FIX] 修復刷新數據時資源面板中選中的文件夾和根節點文件夾摺疊狀態不準確的問題
[FIX] 修復 ui prefab 從資源還原時場景不顯示的問題
[FIX] 修復 prefab 還原過程中 Node 類型對象發生的引用錯誤問題
[FIX] 修復 Effect 資源的 define 提取問題
[FIX] 修復材質 PipelineStates 沒有讀取 Effect 文件中默認值的問題
[FIX] 修復 TextureCube 刪除部分子資源時報錯的問題
[FIX] 修復框選動畫編輯器關鍵幀時的問題
[FIX] 修復動畫編輯器 duration 在移動時可能出現的位置不準確
[FIX] 修復動畫編輯器更改 sample 後當前控制桿的更新
[FIX] 修復動畫編輯器中丟失屬性無法移除以及點擊報錯問題
[FIX] 修復動畫編輯器選中關鍵幀移動一次後移動其他幀的問題
[FIX] 修復動畫編輯器選中關鍵幀後直接移動選中的多個關鍵幀
[FIX] 修復動畫編輯器 duration 在修改幀數後顯示異常
[FIX] 修復動畫編輯器移除關鍵幀後依舊顯示的問題
[FIX] 修復動畫編輯器按 Ctrl 鍵無法多選關鍵幀的問題
[FIX] 修復刷新編輯器後 inspector width 取值不正確的問題(可能導致材質面板異常)
[FIX] 修復動畫編輯器更新事件幀數據錯誤
[FIX] 修復動畫編輯器加載狀態管理錯誤
[FIX] 修復 inspector 中編輯數據時的可能發生的報錯
[FIX] 修復 inspector 中 node 編輯框雙擊跳轉問題
[FIX] 修復數字輸入框值變化的精度、最大最小值控制的問題
[FIX] 修復節點 layer 屬性值被序列化爲字符串的問題
[FIX] 修復 Camera Preview 黑屏的問題
[FIX] 修復程序關閉的時候 profile 數據可能未保存的問題
[FIX] 修復 ui 組件 clear 按鈕不顯示
[FIX] 修復 prefab 在動畫編輯狀態下,inspector 閃爍的問題
[FIX] 修復層級面板取消關閉時 loading 遮罩一直存在的問題
[FIX] 修復微信開發者工具設置方式
[FIX] 修復構建微信時未保留原有的子域文件夾問題
[FIX] 修復微信子包內包含圖集時資源可能會丟失的問題
[FIX] 修復模板文件在編輯器打包後創建出來的是隻讀文件的問題
其他引擎更新日誌
[FEATURE] 屬性支持獨立的 type decorator: @integer, @float, @string, @boolean, @type
[FEATURE] 給 Sprite 組件添加灰度模式
[FEATURE] 新增微信 SubContextView 組件,用於配合 Creator 生產的子域工程使用
[FEATURE] glTF 格式支持 khr-draco-mesh-compression
[FEATURE] 內建材質支持頂點色
[IMPROVE] 使用二進制格式存儲並優化骨骼動畫序列化後的尺寸
[IMPROVE] 大幅降低 Profiler 在渲染過程中的性能損耗
[IMPROVE] 複用材質實例,單獨處理 PSO 狀態變化的更新,優化內存和性能
[IMPROVE] 統一 SkeletalAnimationClip 功能到 AnimationClip 中(包含數據遷移)
[IMPROVE] 支持最高 32 個 shader 宏定義
[IMPROVE] 優化 shader 中的對運行環境支持精度的判斷
[IMPROVE] 完善 RenderScene raycast 功能
[IMPROVE] 防止在父節點生效或禁用過程中修改相關的節點樹
[IMPROVE] 在基於物理系統的 Transform 同步完成後發送碰撞檢測相關事件
[IMPROVE] 增加 geometry 中的相交判斷 API 並修復部分問題,新增 line_sphere, line_aabb, line_obb
[IMPROVE] 優化 Widget 組件對百分比數據的保存方式和編輯器呈現(包含數據遷移)
[IMPROVE] 優化 Skybox 在場景加載過程中的內存創建
[IMPROVE] 在音頻成功播放後取消不必要的事件監聽
[FIX] 修復模型動態批處理只支持十個節點的問題
[FIX] 禁止向場景中添加組件
[FIX] 修復節點 setWorldScale 計算錯誤
[FIX] 修復節點 translate 計算錯誤
[FIX] 修復 Tone mapping 和陰影渲染
[FIX] 修復 PSO 管理導致的骨骼動畫陰影錯落問題
[FIX] 修復部分設備精度問題導致的 WebGL1 下的渲染錯誤
[FIX] 在微信環境下禁用 VAO 以避免部分機型下的渲染丟失問題
[FIX] 修復微信環境下部分 GL 常量不存在的問題,使用值代替索引
[FIX] 修復部分情況下微信平臺音頻無法播放和音量控制無效的問題
[FIX] 修復粒子拖尾在 UI 下無法顯示的問題
[FIX] 修復粒子拖尾的計算問題
[FIX] 修復粒子拖尾變形的問題
[FIX] 修復粒子 limit velocity 模塊的表現問題
[FIX] 修復模型屬性初始化順序問題
[FIX] 修復模型資源銷燬後骨骼動畫數據可能丟失的問題
[FIX] 修復對 GLTF 的 cubic spline 動畫插值支持
[FIX] 修復 UI ScrollView 的回彈效果
[FIX] 修復 UI 節點在微信下的概率性排序問題
[FIX] 修復九宮格貼圖在旋轉狀態下的渲染錯誤
[FIX] 修復 Widget 對節點樹事件監聽管理導致的對已銷燬 Widget 進行計算處理的問題
[FIX] 修復常駐 Canvas 節點在切換場景時導致的攝像機移除問題
[FIX] 修復基於 Kinematic 的物理同步
[FIX] 修復禁用的 RigidBody 組件仍然生效的問題
[FIX] 修復地形中類型定義的錯誤
[FIX] 修復 TS WebGL 對象類型提示
[FIX] 修復微信插屏會縮小以及橫屏狀態下尺寸判斷錯誤的問題
[FIX] 修復 RenderScene API 註釋筆誤
文檔和案例更新
[Sample] 新增完整遊戲[彈彈樂 3D]項目,後續會增加教程
https://github.com/cocos-creator/demo-ball
[Sample] 新增[物理小車 Demo]
https://github.com/cocos-creator/example-3d/tree/master/simple-car-game
[Sample] 新增[下落球球 Demo]
https://github.com/cocos-creator/example-3d/tree/master/falling-ball
[Sample] 新增[滾動小球 Demo]
https://github.com/cocos-creator/example-3d/tree/master/roll-a-ball
[Sample] 新增[吞噬黑洞 Demo]
https://github.com/cocos-creator/example-3d/tree/master/simple-hole
[DOC] 新增 PageView 的使用文檔
[DOC] 新增內置 shader 變量的文檔
[DOC] 新增 AutoAtlas 資源的使用文檔
[DOC] 新增動態合批使用文檔
[DOC] 新增壓縮紋理使用文檔
[DOC] 增加 Canvas clearFlags 屬性的說明
[DOC] 優化構建選項說明
[DOC] 優化 Effect 格式文檔
[DOC] 完善模型資源的使用介紹(骨骼動畫裁剪)
[DOC] 修復一些文檔中的錯誤
以上就是 Cocos Creator 3D v1.0.1更新內容,良好的品質離不開細心的打磨,Cocos 會秉持腳踏實地的精神,穩步提升產品品質。
歡迎小夥伴們繼續通過論壇、GitHub、Cocos 企業服務等渠道向我們提交使用反饋!
Cocos Creator 3D 下載:
https://www.cocos.com/creator3d
Cocos 中文社區:
3D 特別專題
模塊解析 | Cocos Creator 3D 材質系統
案例分享 | 《彈彈樂》3D 完整開發流程
案例分享 | 《快上車》3D 技術實現方案
技術教程 | Cocos Creator 3D 零基礎入門
技術教程 | Cocos Creator 3D 螞蟻莊園系列
版本動態 | Cocos Creator 3D v1.0 正式發佈
我就知道你“在看”▼