NewN_UAVPlane/Assets/GameAssets/Toolset/XFrame/Example/Scripts/UIPanel/MainPanel.cs

73 lines
2.6 KiB
C#

using DG.Tweening;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using XFrame.Core.UI;
using XFrame.Core.Utils;
public class MainPanel : XUIPanel
{
bool menuShow = true;
RectTransform btnBG;
Image arrow;
Image downArrow;
RectTransform outMinBg;
public MainPanel() : base(UIType.Fixed, UIMode.None, UICollider.None)
{
uiPath = "UIPrefab/MainPanel";
}
public override void Awake(GameObject go)
{
arrow = this.transform.Find("BG/BtnBG/btn-arrow").GetComponent<Image>();
downArrow = this.transform.Find("BG/TitleBG/img-downarrow").GetComponent<Image>();
btnBG = this.transform.Find("BG/BtnBG").GetComponent<RectTransform>();
outMinBg = this.transform.Find("BG/TitleBG/img-outminbg").GetComponent<RectTransform>();
this.transform.Find("BG/BtnBG/btn-warning").GetComponent<Button>().onClick.AddListener(() =>
{
ShowPanel<WarningPanel>();
});
this.transform.Find("BG/BtnBG/btn-analysis").GetComponent<Button>().onClick.AddListener(() =>
{
ShowPanel<AnalysisPanel>();
});
arrow.GetComponent<Button>().onClick.AddListener(() =>
{
ShowHideMenu();
});
EventTrigger downArrowTrigger = downArrow.gameObject.AddComponent<EventTrigger>();
downArrowTrigger.AddListener(EventTriggerType.PointerEnter, OnMoveEnterDownArrow);
EventTrigger outMinBgTrigger = outMinBg.gameObject.AddComponent<EventTrigger>();
outMinBgTrigger.AddListener(EventTriggerType.PointerExit, OnMoveExitDownArrow);
}
private void ShowHideMenu()
{
if (menuShow)
{
btnBG.DOAnchorPos(new Vector3(-170, 0, 0), 0.5f).SetEase(Ease.InOutBack).OnComplete(() =>
{
arrow.sprite = SpriteUtils.CreateSprite("Texture/UI/Button/arrowRight");
menuShow = false;
});
}
else
{
btnBG.DOAnchorPos(new Vector3(0, 0, 0), 0.5f).SetEase(Ease.InOutBack).OnComplete(() =>
{
arrow.sprite = SpriteUtils.CreateSprite("Texture/UI/Button/arrowLeft");
menuShow = true;
});
}
}
private void OnMoveEnterDownArrow(PointerEventData eventData)
{
outMinBg.gameObject.SetActive(true);
outMinBg.DOScale(new Vector3(1, 1, 1), 0.1f).SetEase(Ease.Linear);
}
private void OnMoveExitDownArrow(PointerEventData eventData)
{
outMinBg.DOScale(new Vector3(1, 0, 1), 0.1f).SetEase(Ease.Linear).OnComplete(() =>
{
outMinBg.gameObject.SetActive(false);
});
}
}