fix(vehicle): машина едет видимо — исключить кузов из LOD-freeze
Some checks failed
Some checks failed
Регрессия: LOD-оптимизация (_updateModelLOD) замораживала worldMatrix далёких моделей. Кузов машины (modelManager-инстанс) под неё попадал, а после парентинга к chassisNode его root.position стала локальной (≈0,0,0) → LOD мерял дистанцию неверно и замораживал машину → меш переставал следовать за коллайдером (едешь на невидимой машине, видимая стоит). Фикс: помечаем кузов _spawnedAtRuntime=true (+_isVehicleBody) при спавне — LOD его не трогает (как зомби/динамику). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
89bdeff657
commit
22026f2f1d
@ -76,6 +76,14 @@ export class VehicleManager {
|
||||
veh.bodyInstanceId = bodyId;
|
||||
const inst = this._models.instances.get(bodyId);
|
||||
if (inst && inst.rootMesh) {
|
||||
// Кузов машины — динамический объект: им двигает VehicleManager
|
||||
// (через парентинг к chassisNode). Исключаем из LOD-freeze, иначе
|
||||
// freezeWorldMatrix замораживает меш и он перестаёт следовать за
|
||||
// chassisNode → «едешь на невидимой машине, видимая стоит».
|
||||
// (LOD меряет дистанцию по локальной root.position запарентенного
|
||||
// кузова ≈0,0,0 — некорректно, и замораживает машину.)
|
||||
inst._spawnedAtRuntime = true;
|
||||
inst._isVehicleBody = true;
|
||||
// Габариты AABB + вертикальный offset кузова СЧИТАЕМ ДО парентинга
|
||||
// (в мировых координатах, кузов ещё в (x,y,z)).
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user