这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

52 行
1.5 KiB

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Localization.Components;
using UnityEngine.Localization;
public class UIDialogueManager : MonoBehaviour
{
[SerializeField] private LocalizeStringEvent _lineText = default;
[SerializeField] private LocalizeStringEvent _actorNameText = default;
[SerializeField] private GameObject _actorNamePanel = default;
[SerializeField] private GameObject _mainProtagonistNamePanel = default;
[SerializeField] private UIDialogueChoicesManager _choicesManager = default;
[Header("Listening to")]
[SerializeField] private DialogueChoicesChannelSO _showChoicesEvent = default;
private void OnEnable()
{
_showChoicesEvent.OnEventRaised += ShowChoices;
}
private void OnDisable()
{
_showChoicesEvent.OnEventRaised -= ShowChoices;
}
public void SetDialogue(LocalizedString dialogueLine, ActorSO actor, bool isMainProtagonist)
{
_choicesManager.gameObject.SetActive(false);
_lineText.StringReference = dialogueLine;
_actorNamePanel.SetActive(!isMainProtagonist);
_mainProtagonistNamePanel.SetActive(isMainProtagonist);
if (!isMainProtagonist)
{
_actorNameText.StringReference = actor.ActorName;
}
//Protagonist's LocalisedString is provided on the GameObject already
}
private void ShowChoices(List<Choice> choices)
{
_choicesManager.FillChoices(choices);
_choicesManager.gameObject.SetActive(true);
}
private void HideChoices()
{
_choicesManager.gameObject.SetActive(false);
}
}