unity 代码实现一个场景管理器
时间: 2023-12-17 09:53:38 浏览: 154
Unity 中的场景管理器主要负责场景的加载和卸载、场景间的切换以及保存当前场景等功能。以下是一个简单的场景管理器实现:
1. 创建一个名为 SceneManager 的 C# 脚本,定义以下属性和方法:
```csharp
using UnityEngine.SceneManagement;
public class SceneManager : MonoBehaviour
{
public string initialScene; // 初始场景名称
private string currentScene; // 当前场景名称
private void Start()
{
LoadScene(initialScene);
}
public void LoadScene(string sceneName)
{
if (currentScene != null)
{
SceneManager.UnloadSceneAsync(currentScene);
}
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
currentScene = sceneName;
}
public void UnloadScene(string sceneName)
{
if (currentScene == sceneName)
{
Debug.LogError("Cannot unload current scene.");
return;
}
SceneManager.UnloadSceneAsync(sceneName);
}
public void SaveScene()
{
Scene activeScene = SceneManager.GetActiveScene();
SceneUtility.SaveScene(activeScene, activeScene.path);
}
}
```
2. 将 SceneManager 脚本挂载到场景中的一个空物体上。
3. 在场景中添加需要加载的场景,每个场景需设置唯一的名称。
4. 在需要切换场景的地方调用 `SceneManager.LoadScene(sceneName)` 方法即可。
5. 如需卸载场景,调用 `SceneManager.UnloadScene(sceneName)` 方法。
6. 如需保存当前场景,调用 `SceneManager.SaveScene()` 方法即可。
以上就是一个简单的场景管理器实现,可以根据实际需求进行修改和扩展。
阅读全文