unity 能代码实现保存场景吗
时间: 2024-09-18 16:05:52 浏览: 33
Unity 可以通过编写 C# 代码实现对场景的保存。你可以创建一个脚本来操作 GameObject 的序列化属性、Scene 或者 PlayerPrefs 来保存场景数据。以下是基本步骤:
1. 创建一个脚本,通常命名为 `SaveScene` 或类似名称,并添加 `System.IO` 和 `UnityEngine.Serialization` 等命名空间。
```csharp
using System.IO;
using UnityEngine;
public class SaveScene : MonoBehaviour
{
void OnGUI()
{
if (GUILayout.Button("Save Scene"))
{
string jsonString = JsonUtility.ToJson(Scene);
File.WriteAllText(Application.persistentDataPath + "/saved_scene.json", jsonString);
}
else if (GUILayout.Button("Load Scene"))
{
string sceneJson = File.ReadAllText(Application.persistentDataPath + "/saved_scene.json");
if (!string.IsNullOrEmpty(sceneJson))
{
var loadedScene = JsonUtility.FromJson<Scene>(sceneJson);
Application.LoadLevel(loadedScene.levelName);
}
}
}
[Serializable]
private struct Scene
{
public int levelIndex;
public string levelName;
}
}
```
在这个例子中,`OnGUI` 函数中包含了 "Save" 和 "Load" 按钮,分别将当前场景转换为 JSON 并保存到磁盘,以及从磁盘加载并加载指定场景。