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:
parent
2d669a3ff3
commit
6ece149924
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user