From 28b44fe92d4cecc8dedd6535cbf62d59a01fcfe8 Mon Sep 17 00:00:00 2001 From: wass08 Date: Tue, 24 Feb 2026 12:46:27 +0900 Subject: [PATCH] fix zones --- apps/editor/components/systems/zone/zone-system.tsx | 11 +++++++++-- .../src/components/renderers/zone/zone-renderer.tsx | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/editor/components/systems/zone/zone-system.tsx b/apps/editor/components/systems/zone/zone-system.tsx index 2c775526..1c5e2cf6 100644 --- a/apps/editor/components/systems/zone/zone-system.tsx +++ b/apps/editor/components/systems/zone/zone-system.tsx @@ -1,4 +1,4 @@ -import { type ZoneNode, sceneRegistry, useScene } from '@pascal-app/core' +import { sceneRegistry, useScene, type ZoneNode } from '@pascal-app/core' import { useViewer } from '@pascal-app/viewer' import { useEffect } from 'react' import useEditor from '@/store/use-editor' @@ -24,10 +24,17 @@ export const ZoneSystem = () => { const hideInSoloMode = levelMode === 'solo' && selectedLevelId && !isOnSelectedLevel obj.visible = visible + const label = obj.getObjectByName('label') if (label) { // Hide label if zone layer is off OR if in solo mode on a different level - label.position.y = (visible && !hideInSoloMode) ? 1 : -1000 + const showLabel = visible && !hideInSoloMode; + const labelPosition = obj.userData.labelPosition as [number, number, number] | undefined + if (showLabel && labelPosition) { + label.position.set(...labelPosition) + } else { + label.position.set(-9999, -9999, -9999) + } } }) }, [structureLayer, levelMode, selectedLevelId]) diff --git a/packages/viewer/src/components/renderers/zone/zone-renderer.tsx b/packages/viewer/src/components/renderers/zone/zone-renderer.tsx index 7fe2496a..22e3c128 100644 --- a/packages/viewer/src/components/renderers/zone/zone-renderer.tsx +++ b/packages/viewer/src/components/renderers/zone/zone-renderer.tsx @@ -177,7 +177,9 @@ export const ZoneRenderer = ({ node }: { node: ZoneNode }) => { } return ( - +