这是非常基础的,但目前我总是能够通过让所有场景都是独立的(最多有一个单件来存储像得分,弹药等信息),或者将整个游戏都塞在一个场景中来使得游戏顺利进行。
我决定尝试一个更结构化的做法,结果遇到了一个令人困扰的问题:如何从主菜单场景中加载已保存的游戏状态?我不指的是保存和加载文件的过程,我已经知道怎么做了。指的是如何将要被加载的数据转移到实际的游戏中一旦主菜单场景被卸载。
我尝试过以下方法:
场景已经读了savegame从save文件,然后将其转移到一个GameLoader对象中,并调用了DontDestroyOnLoad()确保数据不会被销毁,然后启动一个等待场景加载的协程,然后在协程完成后初始化所有场景对象的数据来自savegame。当加载时,如果直接调用LoadScene(),会发现一些对象被初始化还没有,这个场景会乱到抛出错误。
出现问题的是,在场景被加载后,仍然什么都没有发生,即使是测试中的一个简单的Debug.Log()提示信息都没有被调用执行。
什么是正确的方式来处理这种情况?
评论 (0)