feat(GazeReminder): 实现更多提示

This commit is contained in:
2025-10-26 22:13:15 +08:00
parent 1459c70279
commit e8b9f47067
12 changed files with 920 additions and 104 deletions

View File

@@ -3,6 +3,7 @@ using UnityEngine;
using Script.Gameplay.Player;
using TMPro;
using System.Collections.Generic;
using Script.Gameplay.Interface;
namespace UI
{
@@ -11,11 +12,19 @@ namespace UI
[SerializeField] private GameObject reminderInteractPrefab;
[SerializeField] private GameObject reminderReadPrefab;
[SerializeField] private GameObject reminderConnectPrefab;
[SerializeField] private GameObject reminderSetPointPrefab;
[SerializeField] private GameObject reminderSetLeftPointPrefab;
[SerializeField] private GameObject reminderSetRightPointPrefab;
[SerializeField] private GameObject reminderDeleteLinePrefab;
[SerializeField] private GameObject reminderEditPrefab;
[Header("Connect Status UI")]
[SerializeField] private GameObject ConnectStatus;
[SerializeField] private TMP_Text NeedCountText;
[SerializeField] private TMP_Text CurrentCountText;
private PlayerInteractorController playerInteractorController;
private PlayerConnectController playerConnectController;
private PlayerDialogueController playerDialogueController;
private PlayerEditController playerEditController;
protected override void Awake()
{
@@ -23,6 +32,14 @@ namespace UI
ControllerLocator.Instance.TryGetWait<PlayerInteractorController>(OnGetInteractorController);
ControllerLocator.Instance.TryGetWait<PlayerConnectController>(OnGetConnectController);
ControllerLocator.Instance.TryGetWait<PlayerDialogueController>(OnGetDialogueController);
ControllerLocator.Instance.TryGetWait<PlayerEditController>(OnGetEditController);
}
private void OnGetEditController(PlayerEditController obj)
{
playerEditController = obj;
playerEditController.OnGazeEnterEditableComponent += (obj) => reminderEditPrefab.SetActive(true);
playerEditController.OnGazeExitEditableComponent += (obj) => reminderEditPrefab.SetActive(false);
}
private void OnGetInteractorController(PlayerInteractorController controller)
@@ -35,17 +52,32 @@ namespace UI
private void OnGetConnectController(PlayerConnectController controller)
{
playerConnectController = controller;
playerConnectController.OnGazeEnter += (obj) =>
playerConnectController.OnGazeEnterConnectable += (obj) =>
{
reminderConnectPrefab.SetActive(true);
reminderSetPointPrefab.SetActive(true);
reminderSetLeftPointPrefab.SetActive(true);
reminderSetRightPointPrefab.SetActive(true);
reminderDeleteLinePrefab.SetActive(true);
// 更新连接状态UI
ISignalReceiver connectableComponent = obj.GetComponent<ISignalReceiver>();
if (connectableComponent != null)
{
ConnectStatus.SetActive(true);
NeedCountText.text = connectableComponent.NeedSignalCount.ToString();
CurrentCountText.text = connectableComponent.CurrentNeedSignalCount.ToString();
}
else
{
ConnectStatus.SetActive(false);
}
};
playerConnectController.OnGazeExit += (obj) =>
playerConnectController.OnGazeExitConnectable += (obj) =>
{
reminderConnectPrefab.SetActive(false);
reminderSetPointPrefab.SetActive(false);
reminderSetLeftPointPrefab.SetActive(false);
reminderSetRightPointPrefab.SetActive(false);
reminderDeleteLinePrefab.SetActive(false);
ConnectStatus.SetActive(false);
};
}

View File

@@ -20,8 +20,8 @@ namespace UI
private void OnGet(PlayerWatchModeController watchModeCtrl)
{
watchModeController = watchModeCtrl;
modeText.text = "Watch Mode: " + watchModeController.CurrentWatchMode;
watchModeController.OnEnterWatchMode += mode => modeText.text = "Watch Mode: " + mode;
modeText.text = "Mode: " + watchModeController.CurrentWatchMode;
watchModeController.OnEnterWatchMode += mode => modeText.text = "Mode: " + mode;
}
}
}