我正在使用这个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);
    }

}