diff --git a/src/editor/HierarchyPanel.jsx b/src/editor/HierarchyPanel.jsx index ff263b6..d615b4c 100644 --- a/src/editor/HierarchyPanel.jsx +++ b/src/editor/HierarchyPanel.jsx @@ -786,7 +786,8 @@ const HierarchyPanel = ({ className={`${cl.item} ${selection?.type === 'spawn' ? cl.itemSelected : ''}`} onClick={() => onSelectSpawn?.()} onDoubleClick={() => { onSelectSpawn?.(); onFocusSelection?.(); }} - title="Точка спавна игрока" + onContextMenu={(e) => { e.preventDefault(); onSelectSpawn?.(); }} + title="Точка спавна игрока (ПКМ — выбрать и открыть свойства)" > Точка спавна @@ -1149,7 +1150,12 @@ const HierarchyPanel = ({ {/* === 📜 СКРИПТЫ === — только глобальные (без target). Скрипты с target отображаются под объектом-носителем. */} {(() => { - const globalScripts = scripts.filter(s => !s.target); + // Глобальные скрипты: без target ИЛИ target==='game' (строка). + // Раньше фильтр был `!s.target` → скрипты с target:'game' + // (главный скрипт игры) НЕ показывались в дереве и их нельзя + // было удалить, хотя в Play они исполнялись. + const isGlobalTarget = (t) => !t || t === 'game'; + const globalScripts = scripts.filter(s => isGlobalTarget(s.target)); return ( <> showCoins()); globalThis.__addCoins = (n) => { coins += (n||1); showCoins(); };` }], }, { - id: 'spawn-point', - name: 'Точка спавна', - desc: 'Зелёная платформа-маркер — место появления игрока. Поставь где нужно.', + id: 'start-pad', + name: 'Стартовая площадка', + desc: 'Светящаяся платформа-постамент для оформления зоны старта (точка спавна в проекте уже есть по умолчанию).', icon: 'flag', category: 'world', - prims: [{ type: 'cylinder', x: 0, y: 0.15, z: 0, sx: 3, sy: 0.3, sz: 3, color: '#36d57a', material: 'neon', name: 'Точка спавна' }], + prims: [{ type: 'cylinder', x: 0, y: 0.15, z: 0, sx: 3, sy: 0.3, sz: 3, color: '#36d57a', material: 'neon', name: 'Стартовая площадка' }], }, { id: 'checkpoint',