87 lines
2.4 KiB
C#
87 lines
2.4 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(_currentTalkSceneSo.firstSceneName);
|
|
StartMenu.Instance.HideStartMenu();
|
|
DialogController.Instance.StartDialog(_currentTalkSceneSo.yarnProject);
|
|
}
|
|
|
|
public IEnumerator StartTestGame()
|
|
{
|
|
// TODO 全部改好之后这里要直接进入FixScene
|
|
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
|
|
}
|
|
}
|
|
|