###webgl調試 起初使用threejs 在小程序裏面調試,明明是按着官方的文檔來,可是會發現開發者工具上面會提示getContext,通過一翻摸索,發現webgl調試只能在手機端調試。 總結:webgl 調試在微信開發者工具中不支持調試,只能在手機上預覽,調試起來起來很慢。每次調試都要不停的按編譯,而後手機上等個幾十秒,開發效率來講賊慢。web
###threejs api 部分 api 部分是探索最久的,一部分本身不熟悉threejs,也不熟悉;遊戲開發這部分,二來開發中有很bug要不停找緣由,找方法,相對來講比較慢。 起初兼容threejs ,threejs 中有一些document和window對象的方法,後來找了個weapp-adapter 來兼容,可是慢慢看 weapp-adapter 是官方對於微信小遊戲的兼容, 小程序中少來大量api。後來用小遊戲使用來threejs 寫了個demo,可是小遊戲中又不能滾動之類的window屬性。。。就又回小程序這塊。 關於threejs 部分,看了,使用addEventListener 這個api的都要註釋掉(由於沒有dom和window對象,也沒有監聽的方法),特別是加載貼圖和手勢庫須要修改源碼。 canvas
加載貼圖等時候會調用document.createElementNS(用來建立貼圖)。 貼圖能夠用canvas.createImage 方法代替,要修改源碼. 實例化的時候傳入canvas參數。小程序
雖然沒有error,可是會提示WEBGL_depth_texture ANGLE_instanced_arrays OES_texture_float_linear ...等,這些小程序不支持 至於手勢庫最難,小程序canvas控制都放組件裏面,就算得到canvas對象,打印出來也只是canvas視圖(VirtualDOM)的屬性,想要給視圖綁定方法只能在視圖層裏面註冊(不能在邏輯層裏面註冊)。 於是可能要本身寫一套符合canvas 和 threejs 的手勢庫(如圖1)。註冊好的方法還要注入threejs裏面~~ 初始化的時候小程序視圖層(View)和邏輯層(App Service)是分開的,視圖層和邏輯層的交互經過jsbridge 通訊以下圖。 api
###本身實現3D場景 本身事項3D場景的話,要本身寫一個相似OrbitControls的threejs的插件,目前小程序上還木有相似的插件,基本沒得搞。微信
###總結 基於微信開發車配小程序,若是是基於threejs,能找到一個合適的手勢庫和貼圖方法,有可能能實現。微信開發