我正在使用这个GameManager游戏对象,带有一个Canvas和图像,以便在场景之间进行转移。 我附上了我的脚本和编辑器截图。
有趣的是,第一个LoadIn();在进入主菜单时工作正常,但无论按下哪个按钮,调用LoadOut();都会立即返回错误... 但它们都使用同一个loadingAnimator,我只为这个一个功能创建了一个loadingAnimator,所以我完全不知道它是如何失效的。感谢提前。
// CC_GameManager.cs
// 这个管理器将负责启动/结束游戏,跟踪分数,
// 在场景之间进行转移,跟踪玩家能力,并在场景之间保持一致。
using UnityEngine;
using UnityEngine.SceneManagement;
public class CC_GameManager : MonoBehaviour
{
public static CC_GameManager instance; // 单例实例的游戏管理器。
private Animator loadingAnimator;
private void Awake()
{
if (instance == null)
{
instance = this; // 如果没有实例存在,则将其设置为实例。
}
else
{
Destroy(gameObject); // 如果已经存在实例,则销毁这个副本。
}
DontDestroyOnLoad(this.gameObject); // 这个游戏管理器将在场景之间保持一致。
loadingAnimator = GetComponentInChildren<Animator>(); // 从子对象中获取Animator组件。
}
void Start()
{
LoadIn(); // 当主菜单加载时,播放淡入动画。
}
// Update 是每帧被调用一次
void Update()
{
}
public void StartRun()
{
LoadOut();
SceneManager.LoadScene("Glowberry Grotto"); // 当主菜单或游戏结束后重启时,加载第一区域,即"Glowberry Grotto"。
LoadIn(); // 当新场景加载时,播放淡入动画。
}
public void EndRun()
{
LoadOut(); // 当玩家死亡时,播放淡出动画
SceneManager.LoadScene("Death Screen"); // 当玩家生命值为0时,导向死亡屏幕,显示任何最后信息并提供继续前进的选项。
LoadIn(); // 当新场景加载时,播放淡入动画。
}
public void ReturnToMainMenu()
{
LoadOut();
SceneManager.LoadScene("MainMenu"); // 当玩家在死亡屏幕/暂停菜单中按下主菜单按钮时,返回主菜单。
LoadIn(); // 当新场景加载时,播放淡入动画。
}
public void LoadIn()
{
loadingAnimator.SetBool("isFadeIn", true);
}
public void LoadOut()
{
loadingAnimator.SetBool("isFadeOut",true);
}
}
评论 (0)