1
0
Fork 0
LaboratoryProtection/Assets/UnityTest/ZXL/Scripts/UI/DialogueUI.cs

99 lines
3.2 KiB
C#
Raw Normal View History

2023-09-13 02:20:37 +08:00
using System;
using DG.Tweening;
using DragonSoul.Shared;
2023-09-13 02:20:37 +08:00
using TMPro;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace UnityTest.ZXL
{
2023-09-13 15:31:44 +08:00
public class DialogueUI : UI
2023-09-13 02:20:37 +08:00
{
public DialogueStr left;
public DialogueStr right;
public Button btnNext;
private ETTask task;
2023-09-13 02:20:37 +08:00
public override void OnInit()
{
base.OnInit();
btnNext.onClick.AddListener(ClickNext);
btnNext.gameObject.SetActive(false);
left.content.text = "";
left.role.text = "";
right.content.text = "";
right.role.text = "";
}
private void ClickNext()
{
task.SetResult();
}
public async ETTask StartAnDialogueAsync(DialogueData2 data)
2023-09-13 02:20:37 +08:00
{
2023-09-13 15:04:19 +08:00
DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
task = ETTask.Create();
var leftData = data.left;
var rightData = data.right;
var list = DialogueRoleManager.Instance().ShowRole(leftData.dialogueType, rightData.dialogueType);
2023-09-13 02:20:37 +08:00
list[0].enabled = true;
list[1].enabled = false;
2023-09-13 02:20:37 +08:00
left.role.text = leftData.dialogueType.ToString();
2023-09-19 09:50:35 +08:00
right.role.text = rightData.dialogueType.ToString();
await left.content.WaitDoTMPText(leftData.content, "");
2023-09-13 02:20:37 +08:00
list[0].enabled = false;
list[1].enabled = true;
await right.content.WaitDoTMPText(rightData.content, "");
2023-09-19 09:50:35 +08:00
list[1].enabled = false;
btnNext.gameObject.SetActive(true);
await task;
2023-09-13 15:04:19 +08:00
// ResetAll
left.content.text = "";
left.role.text = "";
right.content.text = "";
right.role.text = "";
btnNext.gameObject.SetActive(false);
DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
2023-09-13 02:20:37 +08:00
}
// public async ETTask StartLeftDialogueAsync(DialogueContentData leftData)
// {
// DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
// left.role.text = leftData.dialogueType.ToString();
// left.content.text = "";
//
// DialogueRoleManager.Instance().ShowRole(leftData.dialogueType, leftData.dialogueType);
// await left.content.WaitDoTMPText(leftData.content, "");
// }
//
// public async ETTask StartRightDialogueAsync(DialogueContentData rightData)
// {
// DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
// right.role.text = rightData.dialogueType.ToString();
// right.content.text = "";
//
// DialogueRoleManager.Instance().ShowRole(rightData.dialogueType, rightData.dialogueType);
// await right.content.WaitDoTMPText(rightData.content, "");
// }
2023-09-13 15:04:19 +08:00
private void OnDisable()
2023-09-13 02:20:37 +08:00
{
2023-09-13 15:04:19 +08:00
DialogueRoleManager.Instance().HideAllRole();
2023-09-13 02:20:37 +08:00
}
}
[System.Serializable]
public struct DialogueStr
{
public TextMeshProUGUI role;
public TextMeshProUGUI content;
public RawImage dialogueType;
}
}