Вот моя сцена
https://codepen.io/partypants2/pen/emyl ... rs=0010br/> horeor генерируются над поворотным столом/диск.
. замороженные на месте на поворотном столе/диск (
Код: Выделить всё
bodyBКаждый BodyA (лошадь) имеет BTFixedConstraint с BodyB (DISC). Проблема становится очевидной, когда диск (
Код: Выделить всё
bodyBКогда начинается физика, это приводит к активации фиксированных конструктов. Поскольку фиксированные конструкции не настроены правильно, это заставляет лошадей терять выравнивание со своей целевой осью. btfixedconstraint реализация
Код: Выделить всё
// bodyA = the rigidBody being attached
// bodyB = what bodyA is being attached to
const applyFixedConstraint = (bodyA, bodyB) => {
const relRotationAB = getRelativeRotation(bodyA, bodyB);
const relPosBA = getRelativePosition(bodyB, bodyA);
// FRAME IN A
const frameInA = new Ammo.btTransform();
frameInA.setIdentity();
frameInA.getOrigin().setValue(0, 0, 0);
frameInA.setRotation(new Ammo.btQuaternion(0,0,0,1)); // i.e. 'none'
// FRAME IN B
const frameInB = new Ammo.btTransform();
frameInB.setIdentity();
frameInB.getOrigin().setValue(relPosBA.x, relPosBA.y, relPosBA.z);
frameInB.setRotation(new Ammo.btQuaternion(relRotationAB.x, relRotationAB.y, relRotationAB.z, relRotationAB.w));
// RESULT
const fixedConstraint = new Ammo.btFixedConstraint(bodyA,bodyB,frameInA,frameInB); // this line doesn't "freeze items in the air" like it should
physicsWorld.addConstraint(fixedConstraint, true);
return fixedConstraint;
}
, поскольку Bodya/body Параметры. < /p>
Сказано
Код: Выделить всё
frameInAПодробнее здесь: https://stackoverflow.com/questions/795 ... ze-objects
Мобильная версия