forked from sin365/AxibugEmuOnline
95 lines
2.7 KiB
C#
95 lines
2.7 KiB
C#
using AxibugEmuOnline.Client.ClientCore;
|
|
using AxibugEmuOnline.Client.UI;
|
|
using DG.Tweening;
|
|
using DG.Tweening.Core;
|
|
using DG.Tweening.Plugins.Options;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace AxibugEmuOnline.Client
|
|
{
|
|
public class LaunchUI : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
RectTransform MainMenuRoot;
|
|
[SerializeField]
|
|
MainMenuController MainMenu;
|
|
public Image BG;
|
|
|
|
Vector2 m_mainLayoutPosition;
|
|
[SerializeField]
|
|
float m_detailLayoutPosition_x = 55;
|
|
[SerializeField]
|
|
float m_LayoutChangeSpeed = 10;
|
|
|
|
public static LaunchUI Instance { get; private set; }
|
|
|
|
TweenerCore<Vector2, Vector2, VectorOptions> m_layoutTween;
|
|
|
|
private void Awake()
|
|
{
|
|
Instance = this;
|
|
m_mainLayoutPosition = MainMenuRoot.anchoredPosition;
|
|
MainMenu.ListenControlAction = true;
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (CommandDispatcher.Instance.Current == CommandDispatcher.Instance.Gaming && App.emu.Core.IsNull())
|
|
CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
|
|
}
|
|
|
|
public void HideMainMenu()
|
|
{
|
|
BG.gameObject.SetActiveEx(false);
|
|
MainMenuRoot.gameObject.SetActiveEx(false);
|
|
}
|
|
|
|
public void ShowMainMenu()
|
|
{
|
|
BG.gameObject.SetActiveEx(true);
|
|
MainMenuRoot.gameObject.SetActiveEx(true);
|
|
}
|
|
|
|
public void ToDetailMenuLayout()
|
|
{
|
|
if (m_layoutTween != null)
|
|
{
|
|
m_layoutTween.Kill();
|
|
m_layoutTween = null;
|
|
}
|
|
m_layoutTween = DOTween
|
|
.To(
|
|
() => MainMenuRoot.anchoredPosition,
|
|
(x) => MainMenuRoot.anchoredPosition = x,
|
|
new Vector2(m_detailLayoutPosition_x, MainMenuRoot.anchoredPosition.y),
|
|
m_LayoutChangeSpeed)
|
|
.SetSpeedBased();
|
|
MainMenu.ListenControlAction = false;
|
|
MainMenu.EnterDetailState();
|
|
}
|
|
|
|
public void ToMainMenuLayout()
|
|
{
|
|
if (m_layoutTween != null)
|
|
{
|
|
m_layoutTween.Kill();
|
|
m_layoutTween = null;
|
|
}
|
|
m_layoutTween = DOTween.To(
|
|
() => MainMenuRoot.anchoredPosition,
|
|
(x) => MainMenuRoot.anchoredPosition = x,
|
|
m_mainLayoutPosition,
|
|
m_LayoutChangeSpeed)
|
|
.SetSpeedBased();
|
|
MainMenu.ListenControlAction = true;
|
|
MainMenu.ExitDetailState();
|
|
}
|
|
}
|
|
}
|