问下大佬们 cocos没有类似于unity 的fixedupdate函数吗

如题 要做些物理的碰撞 正常帧的updatae 有时候会穿透 想看看有没有物理帧的update? 或者rigidbody 有没有非添加力 直接rigidboday.movexxxx 等实现

同问,最近需要再物理碰撞检测到后自己的代码里面每帧做更详细的判断,但是偶尔会隧穿

cocoscreator没有fixedupdate这个函数,物理驱动和渲染都是共用update的。
其实我希望引擎方能提供物理驱动的帧接口,可以通过自定义的帧率去驱动物理引擎,比如用服务端提供的驱动帧来驱动物理引擎,这样做联网游戏就可以用物理了。

1赞

Creator依赖JS引擎的requestAnimationFrame来驱动,负载高的时候JS会降低requestAnimationFrame的调用频率,所以基于这个是没法做fixedUpdate的。
有fixedUpdate意味着只要一到时间就要中断当前的代码跑fixedUpdate函数,这需要多线程支持。但是就算平台支持创建worker,worker对资源访问有限制,干不了什么复杂的事情。

1赞

那看来只能暂时想办法用他们的setLinearVelocity 解决了…

这个是你要的效果么?

function fixedupdate(dt, m, n) {
    cc.PhysicsManager.FIXED_TIME_STEP = n;
    cc.PhysicsManager.MAX_ACCUMULATOR = m;
    cc.director.getPhysicsManager().enabled = true;
    cc.director.getPhysicsManager().update(dt);
    cc.director.getPhysicsManager().enabled = false;
}

生命周期回调 · Cocos Creator

不是的 这个是初始化的一个封装吧 fixedupdate算是一个物理帧的update回调

没有的…

现在物理用起来就很难受…

效果不一样么?

没这个回调…

没这个回调…

啥意思

rigidbody 有没有非添加力 直接rigidboday.movexxxx 等实现

刚体的类型选择Animated,直接设置node的position就行了

直接节点移动会穿碰撞的 而且这个3.0.1的… 我是想问有没有类似于unity 那种物理帧移动

可以试试 lateUpdate