80 lines
2.1 KiB
C#
80 lines
2.1 KiB
C#
using UnityEngine;
|
|
using Logic;
|
|
using RuntimeData;
|
|
using Animancer;
|
|
using UnityEngine.UI;
|
|
|
|
public class AboutUI
|
|
{
|
|
private Main _main;
|
|
private MapData _mapData;
|
|
public GameObject ROAboutUI;
|
|
|
|
public bool NeedShow = false;
|
|
|
|
private bool _isShowing = false;
|
|
private bool _isAnimating = false;
|
|
private float _fadeDuration = 0.2f;
|
|
|
|
public AboutUI(Main main, MapData mapData)
|
|
{
|
|
_main = main;
|
|
_mapData = mapData;
|
|
ROAboutUI = UIManager.Instance.ROUIManager.transform.Find("AboutPanel").gameObject;
|
|
ROAboutUI.transform.Find("CloseButton").GetComponent<Button>().onClick.AddListener(
|
|
() => { NeedShow = false;});
|
|
ROAboutUI.gameObject.SetActive(false);
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
if (_isAnimating) return;
|
|
|
|
if (NeedShow && !ROAboutUI.activeSelf)
|
|
{
|
|
Show();
|
|
}
|
|
else if (!NeedShow && ROAboutUI.activeSelf)
|
|
{
|
|
Hide();
|
|
}
|
|
|
|
// 设置界面逻辑(如音量滑块变化、按钮监听等)也可写在这里
|
|
}
|
|
|
|
public void Show()
|
|
{
|
|
if (_isShowing || _isAnimating) return;
|
|
|
|
_isShowing = true;
|
|
_isAnimating = true;
|
|
ROAboutUI.SetActive(true);
|
|
|
|
AnimancerComponent animancer = ROAboutUI.GetComponent<AnimancerComponent>();
|
|
AnimationClip fadeInClip = Resources.Load<AnimationClip>("Animations/UI/SettingPanelFadeIn");
|
|
if (fadeInClip != null)
|
|
animancer.Play(fadeInClip);
|
|
|
|
Timer.Instance.TimerRegister(ROAboutUI, () => { _isAnimating = false; }, _fadeDuration);
|
|
}
|
|
|
|
public void Hide()
|
|
{
|
|
if (!_isShowing || _isAnimating) return;
|
|
|
|
_isShowing = false;
|
|
_isAnimating = true;
|
|
|
|
AnimancerComponent animancer = ROAboutUI.GetComponent<AnimancerComponent>();
|
|
AnimationClip fadeOutClip = Resources.Load<AnimationClip>("Animations/UI/SettingPanelFadeOut");
|
|
if (fadeOutClip != null)
|
|
animancer.Play(fadeOutClip);
|
|
|
|
Timer.Instance.TimerRegister(ROAboutUI, () =>
|
|
{
|
|
ROAboutUI.SetActive(false);
|
|
_isAnimating = false;
|
|
}, _fadeDuration);
|
|
}
|
|
}
|