#if UNITY_2021_1_OR_NEWER // Copyright (c) Pixel Crushers. All rights reserved. using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; namespace PixelCrushers.DialogueSystem.UIToolkit { /// /// Manages QTEs for UIToolkitDialogueUI. /// [Serializable] public class UIToolkitQTEElements : AbstractUIQTEControls { [SerializeField] private UIDocument document; [Tooltip("Name of document's root container.")] [SerializeField] private string rootContainerName; [SerializeField] private List indicatorNames; protected UIDocument Document => document; protected VisualElement RootContainer => UIToolkitDialogueUI.GetVisualElement(Document, rootContainerName); protected virtual VisualElement GetIndicator(int index) { if (Document == null) return null; return Document.rootVisualElement.Q(indicatorNames[index]); } public override bool areVisible { get { for (int i = 0; i < indicatorNames.Count; i++) { if (UIToolkitDialogueUI.IsVisible(GetIndicator(i))) return true; } return false; } } public override void SetActive(bool value) { UIToolkitDialogueUI.SetInteractable(RootContainer, value); for (int i = 0; i < indicatorNames.Count; i++) { UIToolkitDialogueUI.SetDisplay(GetIndicator(i), false); } } public override void ShowIndicator(int index) { UIToolkitDialogueUI.SetDisplay(GetIndicator(index), true); } public override void HideIndicator(int index) { UIToolkitDialogueUI.SetDisplay(GetIndicator(index), false); } } } #endif