fix(studio): камера 3-го лица не цепляется за проходимые зоны (canCollide в metadata)

Зона опасности / триггеры (canCollide:false) ловились camera-clamp, и камера
прыгала к игроку внутри зоны. Причина: metadata примитива НЕ содержал
canCollide, а PlayerController._clampCameraToWorld проверяет md.canCollide.
Добавлен canCollide в metadata меша (+ синк при updateInstance).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
min 2026-06-05 18:49:17 +03:00
parent 2d669a3ff3
commit 6ece149924

View File

@ -186,6 +186,10 @@ export class PrimitiveManager {
primitiveId: id,
primitiveType: type,
primitiveKind: typeDef.kind,
// canCollide в metadata нужен camera-clamp (PlayerController):
// без него камера 3-го лица цепляется за проходимые зоны/триггеры
// (canCollide:false) и прыгает к игроку внутри зоны. Баг 2026-06-05.
canCollide,
};
// textureAsset — id картинки из AssetManager (пользовательская
@ -754,7 +758,10 @@ export class PrimitiveManager {
this._applyMaterial(data.mesh, typeDef, data.color, data.material);
}
if (patch.canCollide !== undefined) data.canCollide = patch.canCollide;
if (patch.canCollide !== undefined) {
data.canCollide = patch.canCollide;
if (data.mesh?.metadata) data.mesh.metadata.canCollide = patch.canCollide;
}
if (patch.locked !== undefined) data.locked = !!patch.locked;
if (patch.visible !== undefined) {
data.visible = patch.visible;