动态刚体的角速度的值跟赋的值不一样

  • Creator 版本: 3.5.1

  • 目标平台: google chrome

  • 重现方式:

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率: 100%

刚体类型:dynamic
重力:-50 * PHYSICS_2D_PTM_RATIO

在场景一开始,添加刚体到场景。设置rigidBody.linearVelocity, 设置rigidBody.angularVelocity,这个时候的值是一致的。
当刚体移动到屏幕外,隐藏刚体节点,设置rigidBody.linearVelocity = v2(0,0), 设置rigidBody.angularVelocity=0。
延迟几秒后,对刚体再次设置rigidBody.linearVelocity,一致;
设置rigidBody.angularVelocity,不一致,
赋值rigidBody.angularVelocity=1,打印出来的结果是rigidBody.angularVelocity = 57.29577951308232。

这是什么造成的?

代码:
const rigidBody = showFruit.getComponent(RigidBody2D);

                rigidBody.wakeUp();

                const force = fruitTS.getForce();

                rigidBody.linearVelocity = force;

                console.log("angle 1  = ", poolFruit.angle);

                console.log("linearVelocity 1  = ", rigidBody.linearVelocity);

                console.log("rigidBody.angularVelocity 1  = ", rigidBody.angularVelocity);

                rigidBody.angularVelocity = 1;//fruitTS.getAngular(force.x);

                console.log("refresh angularVelocity = ", fruitTS.getAngular(force.x));

                console.log("rigidBody.angularVelocity = ", rigidBody.angularVelocity);

                console.log("rigidBody.angularDamping = ", rigidBody.angularDamping);

日志:

angle 1 = 0
GameScene.ts:285 linearVelocity 1 = Vec2 {x: 0, y: 60}
GameScene.ts:286 rigidBody.angularVelocity 1 = 0
fruitPrefab.ts:124 angularVelocity = 221
GameScene.ts:288 refresh angularVelocity = 221
GameScene.ts:289 rigidBody.angularVelocity = 57.29577951308232
GameScene.ts:290 rigidBody.angularDamping = 0

@Cocos 哪位大神给我解答下,搞不懂啊 角度弧度常量180/Math.PI。这为什么会变成角度值啊?
一开始添加的角速度就是赋值正确的,复用怎么就出现这种问题,难道引擎不建议复用刚体?


这是有个解释。

谢谢,文档解释都没有,这使用起来真让人头秃

诡异的问题不少。 :sweat_smile: