86 lines
2.3 KiB
C#
86 lines
2.3 KiB
C#
using System.Collections;
|
|
using AibisDream.Kit;
|
|
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());
|
|
}
|
|
|
|
public void StartNewGame(TalkSceneSO sceneSo)
|
|
{
|
|
currentTalkSceneSO = sceneSo;
|
|
|
|
StartCoroutine(LoadClinicScene());
|
|
}
|
|
|
|
private IEnumerator LoadClinicScene()
|
|
{
|
|
yield return SceneLoader.Instance.LoadSceneAsync(clinicScene);
|
|
StartMenu.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 IEnumerator NextSceneSo()
|
|
{
|
|
if (currentTalkSceneSO && currentTalkSceneSO.nextScene)
|
|
{
|
|
currentTalkSceneSO = currentTalkSceneSO.nextScene;
|
|
yield return MainUIController.Instance.FadeInSync(1);
|
|
yield return LoadClinicScene();
|
|
yield return MainUIController.Instance.FadeOutSync(1);
|
|
}
|
|
else
|
|
{
|
|
yield return null;
|
|
Debug.Log("没有下个场景了");
|
|
}
|
|
}
|
|
}
|
|
|
|
public enum RunMode
|
|
{
|
|
Test, Pro, FixTest
|
|
}
|
|
}
|
|
|