Box2D刚体的角速度getter/setter单位不一致

  • Creator 版本:3.3.0

  • 重现概率:必现

https://github.com/cocos-creator/engine/blob/f09a8e444973dc63059622d31dc97dfb28e542ca/cocos/physics-2d/box2d/rigid-body.ts#L234

    setAngularVelocity (v: number) {
        this._body!.SetAngularVelocity(v);
    }
    getAngularVelocity () {
        return toDegree(this._body!.GetAngularVelocity());
    }

看代码,使用Box2D物理引擎,设置RigidBody2D的angularVelocity的时候用的是弧度制,获取的时候就变成角度制了?鉴于行为诡异且文档没有说明,我认为这是个bug。

例如,如果要让物体一秒旋转一圈,需要设置rb.angularVelocity = Math.PI * 2,然后console.log(rb.angularVelocity)得到的是360。

引擎设计如此,可以通过toRadian再转回弧度制

设计如此,就不能是错误的了么?还请谨慎思考下对等原则。避免增加无效的学习成本。