Files
aibis-dream/Assets/Scripts/Game Loop/GameLoopManager.cs
T
2024-08-20 00:24:29 +08:00

62 lines
1.6 KiB
C#

using System.Collections;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
{
public class GameLoopManager : Singleton<GameLoopManager>
{
[Header("运行模式")]
[SerializeField]
private RunMode runMode;
[Header("正式环境参数")]
[SerializeField] private TalkSceneSO firstTalkSO;
private TalkSceneSO currentTalkSceneSO;
[SerializeField]
private string clinicScene;
[Header("测试环境参数")]
[SerializeField] private string testYarnProject;
public void Start()
{
if (runMode == RunMode.Test)
{
MainUIController.Instance.TVFadeOut(1);
GameObject.Find("Menu Canvas").SetActive(false);
StartCoroutine(StartTestGame());
}
}
public void StartNewGame()
{
currentTalkSceneSO = firstTalkSO;
StartCoroutine(LoadClinicScene());
}
private IEnumerator LoadClinicScene()
{
yield return StartCoroutine(SceneLoader.Instance.LoadSceneAsync(clinicScene));
StartMenuViewer.Instance.HideStartMenu();
DialogController.Instance.StartDialog(currentTalkSceneSO.yarnProject);
}
public IEnumerator StartTestGame()
{
yield return SceneLoader.Instance.LoadSceneAsync(clinicScene);
var proj = Resources.Load<YarnProject>($"Yarn/{testYarnProject}/{testYarnProject}");
DialogController.Instance.StartDialog(proj);
}
}
public enum RunMode
{
Test, Pro, FixTest
}
}