公司用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.我没有 使用命名空间~ --持续更新-- |