fix: replace existing world3d node before importing

This commit is contained in:
Your Name 2026-06-09 15:14:38 +08:00
parent 4a3342c795
commit aa6c1f72a6

View File

@ -650,6 +650,8 @@ export default function CanvasModel3DPage() {
const viewport = useCanvasStore(canvasSelectors.viewport);
const addNode = useCanvasStore((state) => state.addNode);
const nodes = useCanvasStore(canvasSelectors.nodes);
const deleteNode = useCanvasStore((state) => state.deleteNode);
const getCanvasState = useCanvasStore((state) => state.getCanvasState);
const [workspaceMode, setWorkspaceMode] = useState<WorkspaceMode>("model");
@ -2032,6 +2034,15 @@ export default function CanvasModel3DPage() {
const y =
(stageHeight * 0.45 - viewportY) / viewportZoom - targetHeight / 2;
if (isWorldTask) {
const worldNodeIds = nodes
.filter((node) => node.type === "world3d")
.map((node) => node.id);
for (const nodeId of worldNodeIds) {
deleteNode(nodeId);
}
}
addNode(
isWorldTask
? {