Files
aibis-dream/Assets/Scripts/Game Loop/GameLoopManager.cs
T

67 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Rendering;
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)
{
GameObject gameObject = GameObject.Find("UI");
gameObject.transform.Find("Main Canvas").gameObject.SetActive(false);
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 void StartTestGame()
{
SceneLoader.Instance.LoadScene(clinicScene);
var proj = Resources.Load<YarnProject>($"Yarn/{testYarnProject}/{testYarnProject}");
Debug.Log(proj == null);
DialogController.Instance.StartDialog(proj);
}
}
public enum RunMode
{
Test, Pro, FixTest
}
}