2025-10-21 13:07:48 +08:00
|
|
|
using Core;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using Script.Gameplay.Player;
|
|
|
|
|
using TMPro;
|
2025-10-21 14:23:54 +08:00
|
|
|
using System.Collections.Generic;
|
2025-10-21 13:07:48 +08:00
|
|
|
|
|
|
|
|
namespace UI
|
|
|
|
|
{
|
|
|
|
|
public class PlayerGazeReminder : UIBase
|
|
|
|
|
{
|
2025-10-21 14:23:54 +08:00
|
|
|
[SerializeField] private GameObject reminderInteractPrefab;
|
2025-10-24 16:45:02 +08:00
|
|
|
[SerializeField] private GameObject reminderReadPrefab;
|
2025-10-21 14:23:54 +08:00
|
|
|
[SerializeField] private GameObject reminderConnectPrefab;
|
|
|
|
|
[SerializeField] private GameObject reminderSetPointPrefab;
|
2025-10-21 15:40:06 +08:00
|
|
|
[SerializeField] private GameObject reminderDeleteLinePrefab;
|
2025-10-21 13:07:48 +08:00
|
|
|
private PlayerInteractorController playerInteractorController;
|
|
|
|
|
private PlayerConnectController playerConnectController;
|
2025-10-23 15:46:17 +08:00
|
|
|
private PlayerDialogueController playerDialogueController;
|
2025-10-21 13:07:48 +08:00
|
|
|
|
|
|
|
|
protected override void Awake()
|
|
|
|
|
{
|
|
|
|
|
base.Awake();
|
|
|
|
|
ControllerLocator.Instance.TryGetWait<PlayerInteractorController>(OnGetInteractorController);
|
|
|
|
|
ControllerLocator.Instance.TryGetWait<PlayerConnectController>(OnGetConnectController);
|
2025-10-23 15:46:17 +08:00
|
|
|
ControllerLocator.Instance.TryGetWait<PlayerDialogueController>(OnGetDialogueController);
|
2025-10-21 13:07:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnGetInteractorController(PlayerInteractorController controller)
|
|
|
|
|
{
|
|
|
|
|
playerInteractorController = controller;
|
2025-10-23 15:46:17 +08:00
|
|
|
playerInteractorController.OnGazeEnter += (obj) => reminderInteractPrefab.SetActive(true);
|
|
|
|
|
playerInteractorController.OnGazeExit += (obj) => reminderInteractPrefab.SetActive(false);
|
2025-10-21 13:07:48 +08:00
|
|
|
}
|
2025-10-21 14:23:54 +08:00
|
|
|
|
2025-10-21 13:07:48 +08:00
|
|
|
private void OnGetConnectController(PlayerConnectController controller)
|
|
|
|
|
{
|
|
|
|
|
playerConnectController = controller;
|
2025-10-23 15:46:17 +08:00
|
|
|
playerConnectController.OnGazeEnter += (obj) =>
|
|
|
|
|
{
|
|
|
|
|
reminderConnectPrefab.SetActive(true);
|
|
|
|
|
reminderSetPointPrefab.SetActive(true);
|
|
|
|
|
reminderDeleteLinePrefab.SetActive(true);
|
|
|
|
|
};
|
|
|
|
|
playerConnectController.OnGazeExit += (obj) =>
|
|
|
|
|
{
|
|
|
|
|
reminderConnectPrefab.SetActive(false);
|
|
|
|
|
reminderSetPointPrefab.SetActive(false);
|
|
|
|
|
reminderDeleteLinePrefab.SetActive(false);
|
|
|
|
|
};
|
2025-10-21 13:07:48 +08:00
|
|
|
}
|
2025-10-23 15:46:17 +08:00
|
|
|
|
|
|
|
|
private void OnGetDialogueController(PlayerDialogueController controller)
|
2025-10-21 13:07:48 +08:00
|
|
|
{
|
2025-10-23 15:46:17 +08:00
|
|
|
playerDialogueController = controller;
|
2025-10-24 16:45:02 +08:00
|
|
|
playerDialogueController.OnGazeEnterDialogue += (obj) => reminderReadPrefab.SetActive(true);
|
|
|
|
|
playerDialogueController.OnGazeExitDialogue += (obj) => reminderReadPrefab.SetActive(false);
|
2025-10-21 13:07:48 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|