suppress world interaction while a menu panel is open

DialogueInteractable, DialogueTransitionController, and DialogueUIVisibility are
reworked against the new UI layer: visibility is driven by UIStateController
rather than each component toggling canvases itself, which removes the
duplicated show/hide logic the two had accumulated.

NPCStandIn now ignores the interact button while UIStateController reports a
menu open, so pressing interact through an open panel no longer starts a
conversation behind it.

The yarnproject change is graph-editor node positions only.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
2026-08-25 19:04:16 +02:00
co-authored by Claude Opus 5
parent ccabd3e7ac
commit 5b0827072b
5 changed files with 66 additions and 112 deletions
@@ -3,6 +3,7 @@ using UnityEngine.InputSystem;
using TMPro;
using Yarn.Unity;
using NightclubArcadia.Dialogue;
using NightclubArcadia.UI;
/// <summary>
/// Drop this on a sphere primitive to use it as a placeholder NPC:
@@ -153,6 +154,11 @@ public class NPCStandIn : MonoBehaviour
return;
}
if (UIStateController.Instance != null && UIStateController.Instance.IsMenuOpen)
{
return;
}
if (!dialogueRunner.IsDialogueRunning)
{
StartDialogueAsync();