2023-09-13 02:20:37 +08:00
|
|
|
|
using System;
|
2023-09-19 01:12:41 +08:00
|
|
|
|
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;
|
2023-10-05 17:03:37 +08:00
|
|
|
|
public DialogueStr left1;
|
2023-09-13 02:20:37 +08:00
|
|
|
|
public DialogueStr right;
|
2023-09-19 01:12:41 +08:00
|
|
|
|
public Button btnNext;
|
|
|
|
|
private ETTask task;
|
2023-09-13 02:20:37 +08:00
|
|
|
|
|
2023-09-19 01:12:41 +08:00
|
|
|
|
public override void OnInit()
|
|
|
|
|
{
|
|
|
|
|
base.OnInit();
|
|
|
|
|
btnNext.onClick.AddListener(ClickNext);
|
|
|
|
|
btnNext.gameObject.SetActive(false);
|
|
|
|
|
left.content.text = "";
|
|
|
|
|
left.role.text = "";
|
2023-10-05 17:03:37 +08:00
|
|
|
|
left1.content.text = "";
|
|
|
|
|
left1.role.text = "";
|
2023-09-19 01:12:41 +08:00
|
|
|
|
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(); // 隐藏所有
|
2023-09-19 01:12:41 +08:00
|
|
|
|
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
|
|
|
|
|
2023-10-05 17:03:37 +08:00
|
|
|
|
var leftParent = left.role.transform.parent;
|
|
|
|
|
var left1Parent = left1.role.transform.parent.parent;
|
|
|
|
|
|
|
|
|
|
if (data.index != 2)
|
|
|
|
|
{
|
|
|
|
|
// left0
|
|
|
|
|
list[0].enabled = true;
|
|
|
|
|
list[1].enabled = false;
|
|
|
|
|
leftParent.gameObject.SetActive(true);
|
|
|
|
|
left1Parent.gameObject.SetActive(false);
|
|
|
|
|
left.role.text = leftData.dialogueType.ToString();
|
|
|
|
|
right.role.text = rightData.dialogueType.ToString();
|
|
|
|
|
await left.content.WaitDoTMPText(leftData.content, data.left.clipName);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// left1
|
|
|
|
|
list[0].enabled = true;
|
|
|
|
|
list[1].enabled = false;
|
|
|
|
|
leftParent.gameObject.SetActive(false);
|
|
|
|
|
left1Parent.gameObject.SetActive(true);
|
|
|
|
|
left1.role.text = leftData.dialogueType.ToString();
|
|
|
|
|
right.role.text = rightData.dialogueType.ToString();
|
|
|
|
|
await left1.content.WaitDoTMPText(leftData.content, data.left.clipName);
|
|
|
|
|
}
|
2023-09-13 02:20:37 +08:00
|
|
|
|
|
2023-09-19 01:12:41 +08:00
|
|
|
|
list[0].enabled = false;
|
|
|
|
|
list[1].enabled = true;
|
2023-09-27 23:28:03 +08:00
|
|
|
|
await right.content.WaitDoTMPText(rightData.content, data.right.clipName);
|
2023-09-19 09:50:35 +08:00
|
|
|
|
list[1].enabled = false;
|
2023-09-19 01:12:41 +08:00
|
|
|
|
|
|
|
|
|
btnNext.gameObject.SetActive(true);
|
|
|
|
|
await task;
|
2023-09-13 15:04:19 +08:00
|
|
|
|
|
2023-09-19 01:12:41 +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
|
|
|
|
}
|
|
|
|
|
|
2023-09-19 01:12:41 +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;
|
|
|
|
|
}
|
|
|
|
|
}
|