forked from zxl/LaboratoryProtection
99 lines
3.2 KiB
C#
99 lines
3.2 KiB
C#
using System;
|
|
using DG.Tweening;
|
|
using DragonSoul.Shared;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Serialization;
|
|
using UnityEngine.UI;
|
|
|
|
namespace UnityTest.ZXL
|
|
{
|
|
public class DialogueUI : UI
|
|
{
|
|
public DialogueStr left;
|
|
public DialogueStr right;
|
|
public Button btnNext;
|
|
private ETTask task;
|
|
|
|
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)
|
|
{
|
|
DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
|
|
task = ETTask.Create();
|
|
|
|
var leftData = data.left;
|
|
var rightData = data.right;
|
|
var list = DialogueRoleManager.Instance().ShowRole(leftData.dialogueType, rightData.dialogueType);
|
|
|
|
list[0].enabled = true;
|
|
list[1].enabled = false;
|
|
left.role.text = leftData.dialogueType.ToString();
|
|
right.role.text = rightData.dialogueType.ToString();
|
|
await left.content.WaitDoTMPText(leftData.content, "");
|
|
|
|
list[0].enabled = false;
|
|
list[1].enabled = true;
|
|
await right.content.WaitDoTMPText(rightData.content, "");
|
|
list[1].enabled = false;
|
|
|
|
btnNext.gameObject.SetActive(true);
|
|
await task;
|
|
|
|
// ResetAll
|
|
left.content.text = "";
|
|
left.role.text = "";
|
|
right.content.text = "";
|
|
right.role.text = "";
|
|
btnNext.gameObject.SetActive(false);
|
|
DialogueRoleManager.Instance().HideAllRole(); // 隐藏所有
|
|
}
|
|
|
|
// 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, "");
|
|
// }
|
|
|
|
private void OnDisable()
|
|
{
|
|
DialogueRoleManager.Instance().HideAllRole();
|
|
}
|
|
}
|
|
|
|
[System.Serializable]
|
|
public struct DialogueStr
|
|
{
|
|
public TextMeshProUGUI role;
|
|
public TextMeshProUGUI content;
|
|
public RawImage dialogueType;
|
|
}
|
|
} |