diff --git a/NightclubArcadia/Assets/Scripts/Dialogue/DialogueInteractable.cs b/NightclubArcadia/Assets/Scripts/Dialogue/DialogueInteractable.cs index 61b9e43..17378eb 100644 --- a/NightclubArcadia/Assets/Scripts/Dialogue/DialogueInteractable.cs +++ b/NightclubArcadia/Assets/Scripts/Dialogue/DialogueInteractable.cs @@ -1,3 +1,4 @@ +using StarterAssets; using UnityEngine; using Yarn.Unity; @@ -39,7 +40,10 @@ namespace NightclubArcadia.Dialogue void StartConversation() { - playerArmature.SetActive(false); + var playerController = playerArmature.GetComponent(); + if (playerController != null) + playerController.enabled = false; + dialogueUI.SetActive(true); dialogueRunner.StartDialogue(yarnNodeName); } diff --git a/NightclubArcadia/Assets/Scripts/Dialogue/DialogueTransitionController.cs b/NightclubArcadia/Assets/Scripts/Dialogue/DialogueTransitionController.cs index cb72adc..74c57de 100644 --- a/NightclubArcadia/Assets/Scripts/Dialogue/DialogueTransitionController.cs +++ b/NightclubArcadia/Assets/Scripts/Dialogue/DialogueTransitionController.cs @@ -1,3 +1,4 @@ +using StarterAssets; using UnityEngine; using Yarn.Unity; @@ -13,15 +14,26 @@ namespace NightclubArcadia.Dialogue [SerializeField] private GameObject dialogueUI; [SerializeField] private GameObject playerArmature; + private ThirdPersonController playerController; + void Start() { + playerController = playerArmature.GetComponent(); + + // Dialogue is in progress as soon as this controller is active (including + // auto-started nodes), so the player stays locked out until <>. + // The armature itself stays active/visible — only its controls are disabled. + if (playerController != null) + playerController.enabled = false; + dialogueRunner.AddCommandHandler("enter_environment", EnterEnvironment); } void EnterEnvironment() { dialogueUI.SetActive(false); - playerArmature.SetActive(true); + if (playerController != null) + playerController.enabled = true; } } }