104 lines
3.4 KiB
C#
104 lines
3.4 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.UI;
|
|||
|
|
using QFramework;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Text.RegularExpressions;
|
|||
|
|
using TMPro;
|
|||
|
|
using UnityEngine.UIElements;
|
|||
|
|
|
|||
|
|
namespace QFramework.Example
|
|||
|
|
{
|
|||
|
|
public class UITextWindowData : UIPanelData
|
|||
|
|
{
|
|||
|
|
public string text;
|
|||
|
|
public string audio;
|
|||
|
|
public string title;
|
|||
|
|
public List<string> btns;
|
|||
|
|
public float scrollSpeed = 25;
|
|||
|
|
public string position;
|
|||
|
|
}
|
|||
|
|
public partial class UITextWindow : UIPanel
|
|||
|
|
{
|
|||
|
|
ResLoader loader;
|
|||
|
|
protected override void OnInit(IUIData uiData = null)
|
|||
|
|
{
|
|||
|
|
mData = uiData as UITextWindowData ?? new UITextWindowData();
|
|||
|
|
loader = ResLoader.Allocate();
|
|||
|
|
TypeEventSystem.Global.Register<OnModuleQuit>((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject);
|
|||
|
|
// please add init code here
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnOpen(IUIData uiData = null)
|
|||
|
|
{
|
|||
|
|
mData = uiData as UITextWindowData ?? new UITextWindowData();
|
|||
|
|
Des.text = Regex.Replace(mData.text, @"\\n", "\n");
|
|||
|
|
BtnContent.RemoveAllChildren();
|
|||
|
|
if (mData.btns != null)
|
|||
|
|
{
|
|||
|
|
foreach (var item in mData.btns)
|
|||
|
|
{
|
|||
|
|
GameObject btn = GameObject.Instantiate(Btn.gameObject, BtnContent);
|
|||
|
|
btn.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = item;
|
|||
|
|
btn.name = item;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (string.IsNullOrEmpty(mData.audio) == false)
|
|||
|
|
{
|
|||
|
|
string path = Global.audioPath + mData.audio;
|
|||
|
|
loader = ResLoader.Allocate();
|
|||
|
|
loader.Add2Load(path.ToLocalAudioResName(), (success, res) =>
|
|||
|
|
{
|
|||
|
|
if (success)
|
|||
|
|
{
|
|||
|
|
AudioKit.PlayVoice(res.Asset.As<AudioClip>(), false);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
loader.LoadAsync();
|
|||
|
|
}
|
|||
|
|
Title.text = mData.title;
|
|||
|
|
|
|||
|
|
Scroll.verticalNormalizedPosition = 1;
|
|||
|
|
|
|||
|
|
|
|||
|
|
switch (mData.position)
|
|||
|
|
{
|
|||
|
|
case "left":
|
|||
|
|
// <20><>ê<EFBFBD><C3AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>м䣨Middle-Right<68><74>
|
|||
|
|
Content.rectTransform.anchorMin = new Vector2(0, 0.5f); // <20><><EFBFBD><EFBFBD>ê<EFBFBD>㣨<EFBFBD>Ҳࣩ
|
|||
|
|
Content.rectTransform.anchorMax = new Vector2(0, 0.5f); // <20><><EFBFBD><EFBFBD>ê<EFBFBD>㣨<EFBFBD>Ҳࣩ
|
|||
|
|
|
|||
|
|
// <20><>λ<EFBFBD><CEBB>ƫ<EFBFBD>ƹ<EFBFBD><C6B9>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ê<EFBFBD>㣩
|
|||
|
|
Content.rectTransform.anchoredPosition = Vector2.zero;
|
|||
|
|
|
|||
|
|
// <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ϊ<EFBFBD>Ҳ<EFBFBD><D2B2>е㣨Ӱ<E3A3A8><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ת<EFBFBD><D7AA><EFBFBD>ģ<EFBFBD>
|
|||
|
|
Content.rectTransform.pivot = new Vector2(0, 0.5f);
|
|||
|
|
break;
|
|||
|
|
case "right":
|
|||
|
|
default:
|
|||
|
|
// <20><>ê<EFBFBD><C3AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>м䣨Middle-Right<68><74>
|
|||
|
|
Content.rectTransform.anchorMin = new Vector2(1, 0.5f); // <20><><EFBFBD><EFBFBD>ê<EFBFBD>㣨<EFBFBD>Ҳࣩ
|
|||
|
|
Content.rectTransform.anchorMax = new Vector2(1, 0.5f); // <20><><EFBFBD><EFBFBD>ê<EFBFBD>㣨<EFBFBD>Ҳࣩ
|
|||
|
|
|
|||
|
|
// <20><>λ<EFBFBD><CEBB>ƫ<EFBFBD>ƹ<EFBFBD><C6B9>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ê<EFBFBD>㣩
|
|||
|
|
Content.rectTransform.anchoredPosition = Vector2.zero;
|
|||
|
|
|
|||
|
|
// <20><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ϊ<EFBFBD>Ҳ<EFBFBD><D2B2>е㣨Ӱ<E3A3A8><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>ת<EFBFBD><D7AA><EFBFBD>ģ<EFBFBD>
|
|||
|
|
Content.rectTransform.pivot = new Vector2(1, 0.5f);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnShow()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnHide()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnClose()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|