Cocos Creator v2.1.1 3D第一人称视角《蜂巢迷宫》

点击进入游戏,操作方式,wsad为上下左右,q,e左右旋转视角,项目就是参照最强大脑鲍云挑战的项目写的。

我技术比较菜,好多地方用的比较简单暴力的方法,源码就不放了:joy:,下面写一下要点和踩过的坑:

  1. 实现第一人称还是挺简单的,把角色(我只做了一只手)作为摄像机的子节点,然后写一个移动摄像机的代码就行了,如果要实现第三人称,就把摄像机作为人物的子节点。
  2. 3D动画如果没绑定骨骼的话没办法播放,像我的门自动开就是用动作系统代替,但动作系统的api只支持x,y的移动(3D节点也可以移动),我一开始导入的模型需要移动的是z轴,所以就在建模软件旋转后重新导了一次。
  3. camera.getRay(touchPos)方法这个貌似有点问题,只有镜头正对着canvas的时候才有用。后来我测试了一天射线自己写了,格式如下:ray={
    d:cc.v3()//射线的方向,一般做一个长度为1的向量。如{x: -0.6202144987375378, y: 0, z: -0.7844322632042519}
    o:cc.v3()//射线起点,世界坐标,
    }
  4. 使用基础物体创建的plane在射线检测时总是会被检测到,无论放在哪里,distance都在e-13左右的数量级。我的结论就是会用3d软件就不要用原生物体了。:relaxed:
  5. 3D节点触摸无效。
  6. this.node.eulerAngles.y不能直接赋值,用rotationY可以运行,但后台会报警,所以我用以下方法代替:
    this.node.eulerAngles =cc.v3(-9, this.rotationy, 0);
  7. 我用的建模软件是blender,建模过程中用过镜像的话,导入cocos后会导致光影反过来,就是面对光源是黑的,而背对光源是亮的,没办法,我只能重新建模:sob:
    8.最后就是游戏体验像二十年前的3D游戏,不知道是不是我技术太渣,锯齿挺严重的,帧率感人,玩一下容易头晕。

PS:我是转行自学了两个月cocoscreator,目前正在找工作,目的地是在深圳,如有深圳的小伙伴希望能帮忙内推个职位哈:blush:

6赞

厉害啊

大佬能分享下源码吗

厉害呀

有bug 人会嵌在墙里走不出来

按键松开再往反方向走应该可以的,不松开不会重新触发keydown。

blender 镜像光影翻转估计是模型法线的问题, 你可以试试 Blender 自动整理法线

我试过整体翻转法线再导入,又翻转回来都是一个效果。又镜像回去也不行,我只能从头开始搞。

ctrl+n 可以向外重算法线方向,你试试。

还是不行,我感觉镜像后物体就变成镜子中的物体了,法线怎么转导进来光影都是反的,明明在blender渲染是没问题的。

为啥我的摄像机不跟随手转动。摄像机挂的什么脚本。没找到。:cold_sweat: