feat(Dialogue): 实现基本的对话系统
This commit is contained in:
@@ -14,50 +14,45 @@ namespace UI
|
||||
[SerializeField] private GameObject reminderDeleteLinePrefab;
|
||||
private PlayerInteractorController playerInteractorController;
|
||||
private PlayerConnectController playerConnectController;
|
||||
private PlayerDialogueController playerDialogueController;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
ControllerLocator.Instance.TryGetWait<PlayerInteractorController>(OnGetInteractorController);
|
||||
ControllerLocator.Instance.TryGetWait<PlayerConnectController>(OnGetConnectController);
|
||||
ControllerLocator.Instance.TryGetWait<PlayerDialogueController>(OnGetDialogueController);
|
||||
}
|
||||
|
||||
private void OnGetInteractorController(PlayerInteractorController controller)
|
||||
{
|
||||
playerInteractorController = controller;
|
||||
playerInteractorController.OnGazeEnter += HandleInteractGazeEnter;
|
||||
playerInteractorController.OnGazeExit += HandleInteractGazeExit;
|
||||
}
|
||||
|
||||
private void HandleInteractGazeEnter(GameObject obj)
|
||||
{
|
||||
reminderInteractPrefab.SetActive(true);
|
||||
}
|
||||
|
||||
private void HandleInteractGazeExit(GameObject obj)
|
||||
{
|
||||
reminderInteractPrefab.SetActive(false);
|
||||
playerInteractorController.OnGazeEnter += (obj) => reminderInteractPrefab.SetActive(true);
|
||||
playerInteractorController.OnGazeExit += (obj) => reminderInteractPrefab.SetActive(false);
|
||||
}
|
||||
|
||||
private void OnGetConnectController(PlayerConnectController controller)
|
||||
{
|
||||
playerConnectController = controller;
|
||||
playerConnectController.OnGazeEnter += HandleConnectGazeEnter;
|
||||
playerConnectController.OnGazeExit += HandleConnectGazeExit;
|
||||
playerConnectController.OnGazeEnter += (obj) =>
|
||||
{
|
||||
reminderConnectPrefab.SetActive(true);
|
||||
reminderSetPointPrefab.SetActive(true);
|
||||
reminderDeleteLinePrefab.SetActive(true);
|
||||
};
|
||||
playerConnectController.OnGazeExit += (obj) =>
|
||||
{
|
||||
reminderConnectPrefab.SetActive(false);
|
||||
reminderSetPointPrefab.SetActive(false);
|
||||
reminderDeleteLinePrefab.SetActive(false);
|
||||
};
|
||||
}
|
||||
|
||||
private void HandleConnectGazeEnter(GameObject obj)
|
||||
|
||||
private void OnGetDialogueController(PlayerDialogueController controller)
|
||||
{
|
||||
reminderConnectPrefab.SetActive(true);
|
||||
reminderSetPointPrefab.SetActive(true);
|
||||
reminderDeleteLinePrefab.SetActive(true);
|
||||
}
|
||||
|
||||
private void HandleConnectGazeExit(GameObject obj)
|
||||
{
|
||||
reminderConnectPrefab.SetActive(false);
|
||||
reminderSetPointPrefab.SetActive(false);
|
||||
reminderDeleteLinePrefab.SetActive(false);
|
||||
playerDialogueController = controller;
|
||||
playerDialogueController.OnGazeEnterDialogue += (obj) => reminderInteractPrefab.SetActive(true);
|
||||
playerDialogueController.OnGazeExitDialogue += (obj) => reminderInteractPrefab.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user