using StarterAssets; using UnityEngine; using Yarn.Unity; namespace NightclubArcadia.Dialogue { /// /// Registers the <> Yarn command, which steps the player /// out of dialogue and hands control to the 3D environment. /// public class DialogueTransitionController : MonoBehaviour { [SerializeField] private DialogueRunner dialogueRunner; [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); if (playerController != null) playerController.enabled = true; } } }