cocos坑也太多了吧,踩完一个又一个,崩溃ing。。。

引擎版本3.4
为了使刚体的子节点也跟随父节点,首先百度到了方法syncPosition。结果3.4版本根本没这个方法,然后在论坛又找,说rigidBody["_body"].syncPositionToPhysics(false)还可以用(为什么这里说还可以,我真的感觉3.0升级向是在砍功能,好多2.x能在网上找到实现案例的demo,要么是属性没了,要么是api没了),
然后以为调用syncPositionToPhysics就终于能解决问题了,结果:
我连rigidBody["_body"]都拿不到,明明打印出来都有,就是拿不到,嘿,有意思


还得异步去拿。。。异步拿到后,方法没用。还是不跟随父节点移动



真的心累


在3.4的api文档里,也搜不到这个方法。方法为啥不生效也无从知晓




父节点和子节点配置如图,父节点加了按键监听实现移动,但是子节点绘制出的boxCollider2D并未跟随移动。有无大佬能传道授业解惑?虽说cocos免费开源让人敬佩,但是老是想实现一个很基本的功能,都要遇到一大堆坑,真的消磨热情。

现在都3.7了,还用3.4?cocos的3.x版本到3.6才算比较成熟。或者用2.4.11。

1赞

初学者,不懂版本间差异。不过刚才看了2.4的文档,至少在文档这方面,完全碾压3

如果做2d和2.5d,用2.4版本。如果做3d,用3.x版本。但是3.x系列前面版本因为快速迭代,所以不够稳定。到3.6,他的2d性能才追上2.4。到3.7,2d物理引擎才比较完善。而且文档因为前边版本的快递迭代不全,到后面版本,文档才补上好多。许多前面版本的文档或工具后面都废弃了。另外有一点我非常奇怪。如果你是新人,为什么不用最新版本?而用3.4这个老旧版本?就是不用3.7.1也要用3.6.3啊

2赞

建议使用 3.7.1,如果觉得有什么欠缺的地方,包括文档问题都欢迎反馈。

我记得直接把刚体的类型设成 Animated,然后直接setPosition就行了吧?有点忘记了
https://docs.cocos.com/creator/manual/zh/physics-2d/physics-2d-rigid-body.html#刚体类型

Animated 坑过,开启物理调试绘制之后,实例化这个类型的刚体节点,会看到碰撞器会从屏幕底部飘到节点上,导致很多错误碰撞回调

受教。当时3.4是随便选的,本着不能用太新版本,也不能用太低版本的原则,选了一个中间版本 :joy:

对,得设置成animated,还得在子节点设置脚本,我之前是把脚本挂到父节点的

2.x的文档还比较好,注释很全,就是缺少例子,建议在一些描述比较抽象的API下添加几行代码示例,就很好了。3.x的文档确实没法看 :rofl:,可能团队实在没人维护?

我们每个大版本都会优化一波 API 文档,如果你是看文档记得切到 3.7 版本

刚体类型使用 KINEMATIC才能通过属性运动,原本的syncPosition接口不太科学所以被砍了吧,你可以在需要设置位置属性的时候把刚体类型切换成KINEMATIC,需要碰撞的时候再切成 DYNAMIC

还是3.7得行啊 以前的版本都是小弟弟

body[_body].syncPositionToPhysics(true); 3.6.3

1赞

已解决,感谢提供方法

:ok_hand:

怎么解决的?