MayHeCome/Assets/Scripts/GameTutorialManger.cs

91 lines
2.5 KiB
C#
Raw Normal View History

2024-12-18 09:55:34 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using Exoa.TutorialEngine;
using UnityEngine;
using UnityEngine.Playables;
public class GameTutorialManger : MonoBehaviour
{
public CanvasGroup BlockPanel;
private void Start()
{
TutorialLoader.instance.Load("MainScene");
StartCoroutine(LoadBlockPanel());
TutorialEvents.OnTutorialProgress += (step, steps) =>
{
switch (step)
{
case 1:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 2; break;
}
case 3:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 2;
//SceneTransitionManager.Instance.TriggerShenPu();
//SceneTransitionManager.Instance.ShenPuStyle = SceneTransitionManager.Instance.InShenPu;
break;
}
case 15:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 1; break;
}
case 16:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 1; break;
}
case 20:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 3;
break;
}
case 27:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 3;
break;
}
case 29:
{
SceneTransitionManager.Instance.CurrentTrackingPointIndex = 2;
//启动Timeline后触发强制白天
GameProcedureManager.Instance.PlayTimelineAndInvoke();
break;
}
}
};
}
private void Update()
{
if (Input.GetKey(KeyCode.P))
{
TutorialController.instance.ForceNext();
}
}
private IEnumerator LoadBlockPanel()
{
float startAlpha = BlockPanel.alpha;
float elapsed = 0f;
while (elapsed < 10)
{
elapsed += Time.deltaTime;
BlockPanel.alpha = Mathf.Lerp(startAlpha, 0, elapsed / 10);
yield return null;
}
BlockPanel.alpha = 0; // 确保完全隐藏
BlockPanel.interactable = false;
BlockPanel.blocksRaycasts = false; // 禁用交互
}
}