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()
|
||
{
|
||
}
|
||
}
|
||
}
|