using System; using Core; using Script.Gameplay.Global; using TMPro; using UnityEngine; using Script.Gameplay.Input; using UnityEngine.InputSystem; using UnityEngine.UI; namespace UI { public class SettingViewer : UIBase { [SerializeField] private TMP_Text TitleText; [SerializeField] private TMP_Text ContentText; [SerializeField] private Button reloadButton; private InputManager inputManager; protected override void Awake() { base.Awake(); inputManager = InputManager.Instance; inputManager.Input.Player.Setting.performed += RegisterInput; reloadButton.onClick.AddListener(OnReloadButtonClicked); } private void OnReloadButtonClicked() { GameManager.Instance.ReStartGame(); ContentText.text = "循环次数:" + GameDataManager.Instance.TotalLoopCount.ToString(); inputManager.SetCursorState(false, CursorLockMode.Locked); inputManager.SetInputForLook(true); inputManager.SetInputForMove(true); } private void RegisterInput(InputAction.CallbackContext ctx) { if (!isActiveAndEnabled) { Show(); inputManager.SetCursorState(true, CursorLockMode.Confined); inputManager.SetInputForLook(false); inputManager.SetInputForMove(false); } else { Hide(); inputManager.SetCursorState(false, CursorLockMode.Locked); inputManager.SetInputForLook(true); inputManager.SetInputForMove(true); } } public override void Show() { base.Show(); ContentText.text = "循环次数:" + GameDataManager.Instance.TotalLoopCount.ToString(); } public override void Hide() { base.Hide(); } private void OnDestroy() { inputManager.Input.Player.Setting.performed -= RegisterInput; } } }