diff --git a/Assets/Scripts/FixSystemNew/Cable/Plug.cs b/Assets/Scripts/FixSystemNew/Cable/Plug.cs index bfefde6a6..490f7d52a 100644 --- a/Assets/Scripts/FixSystemNew/Cable/Plug.cs +++ b/Assets/Scripts/FixSystemNew/Cable/Plug.cs @@ -106,6 +106,7 @@ namespace AibisDream.FixSystem private void OnPointerDown(BaseEventData eventData) { + if (EventSystemEx.Instance.isLocked) return; if (eventData is PointerEventData { button: PointerEventData.InputButton.Right }) return; @@ -131,6 +132,11 @@ namespace AibisDream.FixSystem private void OnPointerUp(BaseEventData eventData) { + if (EventSystemEx.Instance.isLocked) + { + _isDragging = false; + return; + } if (eventData is PointerEventData { button: PointerEventData.InputButton.Right }) { return; diff --git a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/CablePanel.cs b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/CablePanel.cs index f7dae2cb4..dce151fbe 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/FixPanel/CablePanel.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/FixPanel/CablePanel.cs @@ -137,11 +137,14 @@ namespace AibisDream.FixSystem // ------------------------------ 插头事件 ------------------------------ private void OnInsertSocket(ISocket socket) { + var isSameSocket = curSocket == socket; curSocket = socket; CableRef.SetEndPos(socket.GetSocketPos()); AudioManager.Instance.PlaySfx("event:/FollowInput/plugin"); - if (socket is BodyModule bodyModule) + if (!isSameSocket + && !EventSystemEx.Instance.isLocked + && socket is BodyModule bodyModule) { // 插入模块时触发插入事件 EnumEventSystem.Global.Send(EventEnum.PlugIn); @@ -157,7 +160,7 @@ namespace AibisDream.FixSystem AudioManager.Instance.PlaySfx("event:/FollowInput/plugout"); // 如果是模块 - if (curSocket is BodyModule) + if (!EventSystemEx.Instance.isLocked && curSocket is BodyModule) { EnumEventSystem.Global.Send(EventEnum.PlugOut); } diff --git a/Assets/Scripts/UI/Components/TerminalText.cs b/Assets/Scripts/UI/Components/TerminalText.cs index bc91f6c2c..b4d0c2b82 100644 --- a/Assets/Scripts/UI/Components/TerminalText.cs +++ b/Assets/Scripts/UI/Components/TerminalText.cs @@ -340,6 +340,11 @@ namespace AibisDream.UI typewriter.StopShowingText(); } + // 打字机被中途打断时补发一次"展示完成"信号,避免监听方(如 LineSyncToken) + // 永远停留在 PlayText 状态;与 AddText 完成路径保持一致。 + OnTextShown?.Invoke(); + OnTextShown = null; + // 同时清除TextAnimator和底层TMP_Text if (textAnimator != null) { diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 1e2b7191b..d91870d57 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -133,7 +133,7 @@ PlayerSettings: vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 loadStoreDebugModeEnabled: 0 - bundleVersion: 0.5.0.11-20260421-200346 + bundleVersion: 0.5.0.12-20260423-211527 preloadedAssets: - {fileID: 11400000, guid: 0fb2bc2476953fc43a74f0ab8879077c, type: 2} metroInputSource: 0