From d0abec8ba9fef0f3ae93e693cae459ff168ab148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 1 Sep 2026 15:34:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E4=BF=9D=E5=AD=98=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=20UI=20Anchor=20=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 拒绝超出 0..=1 的 Transform Anchor,避免生成溢出 CSS 生成阶段复用保存后的校验结果,不重复执行领域检查 --- .../src-tauri/src/ui_editor/persistence.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/persistence.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/persistence.rs index 5edec22cc..5a0fdbadf 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/persistence.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/persistence.rs @@ -659,6 +659,16 @@ fn validate_node( { return Err("UI 节点 Transform 必须是有限数值".to_string()); } + if node + .layout + .transform + .anchor_min + .iter() + .chain(node.layout.transform.anchor_max.iter()) + .any(|value| *value < 0.0 || *value > 1.0) + { + return Err("UI 节点 Transform 的 anchor 必须处于 0..=1 范围".to_string()); + } if node .layout .transform