【问题标题】:Save Progress between two scenes in Unity (2D Platformer)在 Unity(2D 平台游戏)中保存两个场景之间的进度
【发布时间】:2022-08-04 03:02:43
【问题描述】:
我仍在努力弄清楚如何在 Unity 中编写代码。我有一个按钮(它会从场景 1 切换到场景 2,反之亦然)然后在场景 1 中我已经走到关卡的中间,但是如果我按下按钮它将切换到场景 2,然后我的播放器会重置进入关卡的开始,我希望它位于场景 2 的关卡中间,我希望它以某种方式保存我在场景 1 中的进度并将输入到场景 2。因为我的概念是我在场景中有一个关卡1 我的玩家无法通过障碍物,那么如果我按下按钮(即场景切换),则会在场景 2 中设计一个没有障碍物的关卡,玩家可以通过。
标签:
c#
visual-studio
unity3d
2d
【解决方案1】:
您可以创建一个具有静态成员变量的类并将信息存储在其中。
public class SceneData {
public static int Value1;
public static string Value2;
}
然后在 Scene1 中,您可以存储它们,如下所示:
SceneData.Value1 = 8;
SceneData.Value2 = "test string";
然后在 Scene2 中,您可以访问它们,如下所示:
var mySceneDataValue1 = SceneData.Value1;
var mySceneDataValue2 = SceneData.Value2;
或者,您可以使用我提出的相同类型的概念,但使用 PlayerPrefs,在 Unity 文档中找到有关 here 的更多信息。
或者我能想到的第三种方法是将值保存到一个场景中的本地存储并在另一个场景中访问该本地存储。可以在 Unity 论坛here 上找到这方面的一个示例。
希望这可以帮助。