66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using Cryville.Common.Unity.UI;
|
|
using Cryville.Crtr.Browsing;
|
|
using UnityEngine;
|
|
|
|
namespace Cryville.Crtr {
|
|
public class Menu : MonoBehaviour {
|
|
#pragma warning disable IDE0044
|
|
[SerializeField]
|
|
ResourceBrowserMaster m_browserMaster;
|
|
[SerializeField]
|
|
Animator m_targetAnimator;
|
|
[SerializeField]
|
|
ProgressBar m_progressBar;
|
|
[SerializeField]
|
|
SettingsPanel m_settingsPanel;
|
|
#pragma warning restore IDE0044
|
|
|
|
int frameIndex = 2;
|
|
bool initialized = false;
|
|
int totalTasks = 0;
|
|
#pragma warning disable IDE0051
|
|
void Awake() {
|
|
Game.Init();
|
|
transform.parent.Find("Canvas/Contents").gameObject.SetActive(true);
|
|
m_settingsPanel.Target = Settings.Default;
|
|
}
|
|
void Update() {
|
|
if (!initialized) {
|
|
int taskCount = Game.NetworkTaskWorker.TaskCount;
|
|
if (totalTasks < taskCount) totalTasks = taskCount;
|
|
if (frameIndex > 0) {
|
|
frameIndex--;
|
|
return;
|
|
}
|
|
m_progressBar.value = totalTasks == 0 ? 1 : (1 - (float)taskCount / totalTasks);
|
|
if (taskCount == 0) {
|
|
initialized = true;
|
|
m_targetAnimator.SetTrigger("T_Main");
|
|
}
|
|
}
|
|
if (Input.GetKeyDown(KeyCode.Escape)) {
|
|
if (m_targetAnimator != null) Back();
|
|
}
|
|
}
|
|
|
|
private static string animatorState = null;
|
|
void OnDisable() {
|
|
animatorState = m_targetAnimator.GetCurrentAnimatorClipInfo(0)[0].clip.name;
|
|
}
|
|
void OnEnable() {
|
|
Application.targetFrameRate = 60;
|
|
if (animatorState != null) m_targetAnimator.PlayInFixedTime(animatorState, 0, 0);
|
|
Game.NetworkTaskWorker.ResumeBackgroundTasks();
|
|
}
|
|
#pragma warning restore IDE0051
|
|
|
|
public void Back() {
|
|
if (m_browserMaster.Back()) return;
|
|
m_targetAnimator.SetTrigger("G_Back");
|
|
}
|
|
public void Quit() {
|
|
Application.Quit();
|
|
}
|
|
}
|
|
}
|