Когда я добавляю несколько приборов к одному телу с помощью Box2D, тело вращается вокруг центральной точки первого прибора (многоугольника) вместо центральной точки тела (0,0). Представьте себе так:
Центральная точка фигуры (0, 0). Как я могу сделать так, чтобы он вращался вокруг истинной центральной точки вместо центра первого прибора?
Часть кода, который у меня есть сейчас:
//create body def
let shape = collider.mesh;
let position = collider.gameObject.transform.position;
let bodyDef = new Box2DBodyDef(bodyType, position, options);
let shapeCount = shape.PointSets.length;
let box2DShapes = Array<b2Shape>(shapeCount);
let b2Body = this._b2world.CreateBody(bodyDef.box2DBodyDef);
for (let i = 0; i < shapeCount; i++) {
let b2Shape = new b2PolygonShape();
let polygon: Vector2[];
polygon = shape.GetScaledPoints(collider.gameObject.transform.scale)[i]; // scales points
b2Shape.Set(polygon);
box2DShapes[i] = b2Shape;
}
//create box2D fixtures
for (let i = 0; i < box2DShapes.length; i++) {
let fixture = new b2FixtureDef();
fixture.shape = box2DShapes[i];
fixture.density = options.densityValues[i];
fixture.friction = options.frictionValues[i];
fixture.restitution = options.resitutionValues[i];
b2Body.CreateFixture(fixture);
}
//make Box2DBody
let body = new Box2DBody(b2Body, new ID().ID, bodyType);