fix: 优化Gizmo

This commit is contained in:
2026-09-18 03:06:34 +08:00
parent 8645ea3007
commit 9b72f10b43
23 changed files with 787 additions and 254 deletions

View File

@@ -454,8 +454,13 @@ export function TimelinePanel() {
if (!selectedTrajectoryPoint) return;
function clearTrajectoryPointOnOutsidePointerDown(event: PointerEvent) {
const target = event.target instanceof Element ? event.target : null;
// 点在轨迹关键帧自己身上不算「别处」——那一下是选中它 / 拖它改时间
if (event.target instanceof Element && event.target.closest(".timeline-keyframe-trajectory")) return;
if (target?.closest(".timeline-keyframe-trajectory")) return;
// 右侧「轨迹点」属性面板编辑的就是这个点,点它(滑块 / 数值框 / 标题栏)也不算别处,
// 否则每改一次位置或角度,选中态就被清掉、面板跳回角色属性卡片。
if (target?.closest(".trajectory-point-inspector")) return;
selectTrajectoryPoint(null, null);
@@ -507,7 +512,7 @@ export function TimelinePanel() {
if (!selectedShot) throw new Error("no selected shot");
return {
position: [...selectedShot.transform.position] as [number, number, number],
target: [...selectedShot.target] as [number, number, number],
lookRotation: [...selectedShot.lookRotation] as [number, number, number],
fov: selectedShot.fov,
};
}