Я делаю создателя 3D-монстров, я добавил способ комбинирования деталей и проработал все изгибы, кроме масштабирования. Я объединяю modelInstances, просто устанавливая флаг, добавляя их во вложенные массивы и имея операторы if, которые включают циклы всякий раз, когда пользователь изменяет объединенный экземпляр. При масштабировании объекты остаются неподвижными, но когда я в группе, мне нужно, чтобы они переместились на определенную величину, чтобы сохранить согласованность формы.
В настоящее время это мой метод масштабирования:
switch (modelInstance[i].currentFlip) {
case 0:
modelInstance[i].scale.add(0.01f);
break;
case 1:
modelInstance[i].scale.add(-0.01f, 0.01f, 0.01f);
break;
case 2:
modelInstance[i].scale.add(-0.01f, -0.01f, 0.01f);
break;
case 3:
modelInstance[i].scale.add(0.01f, -0.01f, 0.01f);
break;
}
modelInstance[i].transform.set(modelInstance[i].basePosition, modelInstance[i].baseRotation, modelInstance[i].scale);
Чтобы пояснить, вот видео о том, что происходит: https://youtu.be/kLjlcMVKAR0 Я хочу, чтобы форма комбинированного объекта оставайтесь последовательными, несмотря на его размер, и это должно быть сделано путем изменения положения отдельного объекта. Я знаю положение отдельного объекта, положение комбинированного объекта, текущий масштаб объекта и ограничительную рамку отдельного объекта для точных измерений i sh.