egret3d 探坑經歷

公司用egret開發APP和微信小遊戲,想試試3D,於是。。。
學習http://developer.egret.com/cn/docs/3d/docs/guide/getting-started-introduction/
這是官網egret3d最新的學習文檔,有點簡單,但大體知道 要如何使用~官方的 git上的 egret3d項目 裏面的exemples 是我 學習用法 的 主要方式。
總結:(幾日學習總結下來的開發流程)
1.要下一個egret-Pro 編輯器,目前功能不完善,僅僅用來創建新3d項目,
    官方文檔裏 提及了 需要npm 去下載 paper-cli ,文檔裏 的意思似乎就是 相當於 2d項目裏的 egret create 的作用,
    即paper create命令 可以創建新項目,然並卵,沒辦法 ,用egret-Pro新建項目。
    有一些小坑,就是Pro 比較簡陋~,注意選空項目 和建項目的路徑要選一下。

2.有了3d空項目,這時 應該繼續用paper 引入3d庫,然而 因爲 paper create都不管用所以 ,我直接用其它方式 代替了。如下
    先在3d項目 目錄下 paper install egret3d@next  ,他會幫我們給項目導入 3d庫,但是版本和我 學習的exemple 有衝突,
    因爲是開源的嘛,所以 ,直接去git上將egret3d項目 clone下來,裏面有一個 core/bin 文件夾,將bin裏面的 三個文件 替換 我們3d項目目錄下的 egret3d裏面的
   幾個egret3d.d.ts,egret3d.js和egret3d.ts,同時在libs裏面也有一個 egret3d 目錄,同樣替換掉即可。這下,我們的項目裏面就能 訪問到 對應的 api了。

3.然後就是 將egret-core 項目 從git上也clone下來,用來編譯項目,按照文檔操作,將其導入luncher即可。記得將項目都branch到master分支,默認好像不是。

4.導入5.3.x後,將 egret-Pro創建的項目 在luncher裏 導入項目,然後直接用wing打開即可。

粗略試過,打包微信 可以用,不過 有一些小問題,姑且能用
目前在將2d 框架 導入 3d中。。。
歡迎 分享經驗~自己摸索,苦呀~
幾個 過程中會遇到的坑
1.導入wing 後 生成的egretProperties.json 裏面 oimo的路徑 不對 應該是 libs\oimo 而不是 oimo\oimo
2.最大的問題之一就是 入口變成了 main函數,我直接 在 egret3d.runegret();後面手動new 了 一個Main 實例來啓動邏輯,
先 加載資源,然後 create 一個 defaultScene,純代碼的方式 創建 scene,也可以 從 unity裏創建 再導出來,那就直接load scene即可,
文檔裏有相關說明,不過並不健全,還是要自己摸一摸,我們項目不需要太複雜3d,早知道還不如直接 用three.js了。。。。
然後 create node_2d ,return stage,這就是 2d的 egret.Stage 將它 傳遞出去,即可 銜接原來的2d 開發邏輯。
3.然後下午要解決的一大問題,就是資源 ,3d項目 resources 裏面目錄結構 變了,編譯時,會根據路徑 給他們打包的。
    image/png之類的若在3d目錄下,會打包成Texture,還在想怎麼 處理~
4.之後的就是 打包wxgame的了,
egret-Pro創建項目 最後 publish後 的egret.wxgame.js有點問題,直接將報錯地方 initTouch 什麼的換成 UpdateTouch就是 外層函數名即可,
包括官網說的,將game.js裏的 egret.runegret 換成egret3d.runegret,後,要手動 new 一下Main實例,
5.我沒有 使用命名空間~

--持續更新--

 

egret3degret-coreegretPro

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