129 lines
3.9 KiB
C#
Raw Blame History

using UnityEngine;
using UnityEngine.UI;
using QFramework;
using System;
using System.Collections.Generic;
using static OperationController;
using System.Linq;
using System.Xml.Linq;
namespace QFramework.Example
{
public class UIBtnAnimData : UIPanelData
{
public String title;
public String targetObj;
public String size;
public String pos;
public String animName;
}
public partial class UIBtnAnim : UIPanel
{
protected override void OnInit(IUIData uiData = null)
{
mData = uiData as UIBtnAnimData ?? new UIBtnAnimData();
// please add init code here
TypeEventSystem.Global.Register<OnModuleQuit>((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject);
}
private void OnStepChanged(StepStatusOnChange change)
{
Hide();
}
protected override void OnOpen(IUIData uiData = null)
{
TypeEventSystem.Global.Register<StepStatusOnChange>(OnStepChanged).UnRegisterWhenDisabled(gameObject);
mData = uiData as UIBtnAnimData ?? new UIBtnAnimData();
List<String> title = mData.title.Split('|')?.ToList();
List<String> targetObj = mData.targetObj.Split('|')?.ToList();
List<String> size = mData.size.Split('|')?.ToList();
List<String> pos = mData.pos.Split('|')?.ToList();
for (int i = 0; i < title.Count; i++)
{
int j = i;
GameObject ButtonItemObj = GameObject.Instantiate(Button.gameObject, Connet);
ButtonItemObj.name = title[i];
Vector2 positem = Utility.GetVector2FromStrArray(pos[j]);
Vector2 sizeData = Utility.GetVector2FromStrArray(size[j]);
ButtonItemObj.GetComponent<RectTransform>().sizeDelta = sizeData;
ButtonItemObj.GetComponent<RectTransform>().localPosition = positem;
GameObject obj = Utility.FindObj(targetObj[j]);
obj.GetComponent<Animation>();
ButtonItemObj.transform.Find("TitleText").GetComponent<Text>().text = title[j];
ButtonItemObj.transform.GetComponent<Button>().onClick.RemoveAllListeners();
ButtonItemObj.transform.GetComponent<Button>().onClick.AddListener(() => {
UIGuideTipData data = new UIGuideTipData();
data = UIKit.GetPanel<UIGuideTip>().Data;
UIKit.HidePanel<UIGuideTip>();
UIKit.HidePanel<UITextWindow>();
obj.gameObject.SetActive(true);
PlayReverseAnimation(targetObj[j], mData.animName, () => {
obj.gameObject.SetActive(false);
UIKit.OpenPanelAsync<UIGuideTip>(uiData: data, canvasLevel: UILevel.Common).ToAction().StartGlobal();
Debug.Log("<22><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>");
});
});
}
}
public void PlayReverseAnimation(string path, string animName, Action OnFinishAction)
{
var data = new Dictionary<string, string>
{
{ "animName", animName },
{ "speed", "-1" } // <20><><EFBFBD><EFBFBD>-1ʵ<31>ֵ<EFBFBD><D6B5><EFBFBD>
};
var action = AnimationAction.Allocate(path, data);
// <20><><EFBFBD>ûص<C3BB>
action.OnFinished += () =>
{
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB><D8B5><EFBFBD><EFBFBD><EFBFBD>");
OnFinishAction?.Invoke();
action.Deinit();
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
action.OnStart();
ActionKit.Sequence().Append(action).StartGlobal();
}
protected override void OnShow()
{
}
protected override void OnHide()
{
}
protected override void OnClose()
{
}
}
}