From e15dc56de3de8c8715326ac8140682887bbd55d6 Mon Sep 17 00:00:00 2001 From: min Date: Sun, 7 Jun 2026 14:59:25 +0300 Subject: [PATCH] =?UTF-8?q?fix(studio):=20self.delete=20=D1=81=D0=BD=D0=B8?= =?UTF-8?q?=D0=BC=D0=B0=D0=B5=D1=82=20interact-=D0=BF=D0=BE=D0=B4=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=BA=D1=83=20(E=20=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=B2=D0=B8=D1=81=D0=B8=D1=82=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D1=83=D1=81=D1=82=D0=BE=D1=82=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _applySelfDelete удалял меш, но запись в _interactables оставалась → промпт «E Собрать» висел на месте собранного предмета. Теперь запись чистится по ref. Co-Authored-By: Claude Opus 4.8 --- src/editor/engine/GameRuntime.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/editor/engine/GameRuntime.js b/src/editor/engine/GameRuntime.js index c329e0a..58ec24b 100644 --- a/src/editor/engine/GameRuntime.js +++ b/src/editor/engine/GameRuntime.js @@ -4314,6 +4314,11 @@ export class GameRuntime { const id = t.id ?? t.ref; this.scene3d?.primitiveManager?.removeInstance(id); } + // Снять interact-подсказку удалённого объекта (иначе «E» висит на пустоте). + if (t.kind && (t.ref ?? t.id) != null && Array.isArray(this._interactables)) { + const ref = t.kind + ':' + (t.ref ?? t.id); + this._interactables = this._interactables.filter(it => it.ref !== ref); + } this.scheduleSceneSnapshot(); } catch (e) { // eslint-disable-next-line no-console