【问题标题】:save and load scene unity保存和加载场景统一
【发布时间】:2021-05-22 03:34:29
【问题描述】:

我的游戏没有主菜单,只有关卡,当玩家打开游戏时,我想从上一个会话场景(关卡)继续。我如何创建二进制文件(或使用 playerprefs)。你能帮我如何使用二进制文件保存场景并在我的游戏中加载吗?这是我的游戏代码。请帮助我,我最近几天被困在这里

public class PlatformBuild : MonoBehaviour
{
    void Awake()
    {
        LoadLevel();
    }
public void LoadLevel() 
    {
    
        float spawnPosZ = -42.86f;

        for (int i = 0; i < PlatformsSize; i++)
        {
            GameObject platform = Instantiate(RandomPlatform, transform);
            platform.transform.localPosition = new Vector3(0, 0, spawnPosZ);
            platform.transform.localEulerAngles = new Vector3(0, 0, UnityEngine.Random.Range(0, 360));
            spawnedPlatforms.Add(platform);
        }   
        GameObject finalPlatformInstance = Instantiate(finalPlatform, transform);
        finalPlatformInstance.transform.localPosition = new Vector3(0, 0, spawnPosZ);
    }
}

这是我的游戏管理器脚本,

public class GameManager : MonoBehaviour
{
       
 public void NextLevel()
    {        
        LevelCompletedMenu.SetActive(false);            StartCoroutine(LoadFade(SceneManager.GetActiveScene().buildIndex + 1));

    }

    public void RestartLevel()
    {
        score = 0;
        StartCoroutine(LoadReStart());
        GameOver.SetActive(false);
        StartCoroutine(LoadFade(SceneManager.GetActiveScene().buildIndex));

    }

}

【问题讨论】:

  • but it didnt work 到底是什么意思?得到任何错误?您确定调用了相应的方法吗?
  • playerprefs 保存关卡编号但场景未加载
  • 你应该 Debug your code with breakpoints 看看有什么不符合你的预期

标签: c# unity3d scripting save


【解决方案1】:

包含单个int 可以通过多种方式很好地存储。如果您不希望人们能够进行一些文件侦查以更改他们所在的场景,则可以使用二进制文件,尽管简单地创建一个包含数字的文本文件会更容易。我敢肯定PlayerPrefs 也可以。就实际操作而言,这三个任务都是非常常见的任务,因此可能通过一些谷歌搜索,您可以找到大量关于它的教程。

【讨论】:

  • 我不知道如何使用二进制文件,我看过教程但仍然无法正确理解。你能帮我如何使用二进制文件在我的游戏中保存场景吗?谢谢
猜你喜欢
  • 2022-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 2023-03-10
  • 2022-12-01
  • 1970-01-01
相关资源
最近更新 更多