U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 16 章 · 性能优化
/
第 277 课
LESSON 277 · 性能优化
多场景管理与场景切换
多场景管理完成。下一课做性能测试与基准。
⏱ 约 14 分钟
📊 难度:
入门
🗂 第 16 章 · 性能优化
📍 第 277 / 300 课
课程进度
277 / 300
🎯
本节学习目标
掌握场景组织
掌握场景切换
掌握数据传递
🚀
课程导读
“游戏一堆场景怎么管”——多场景组织、切换与数据传递。本课掌握。
◆
场景组织与切换
“场景”是关卡。
【场景清单】
MainMenu(主菜单)、Level1/2/3(关卡)、GameOver(结束)。
【Build Settings】File → Build Settings → 把所有场景拖入 Scenes In Build(顺序=索引)。
【切换】SceneManager.LoadScene("Level1");
【索引】SceneManager.LoadScene(1);
【当前】SceneManager.GetActiveScene().name;
【异步】LoadSceneAsync(第 268 课)。
【单一场景 vs 多场景】小游戏单场景+切场景;开放世界多场景叠加(进阶)。
【流程】开始→主菜单→关卡→结束→返回。
【注意】场景没加进 Build 会报错“Scene not found”。
【完成】场景“通了”!
💡
场景管理 = Build 列表(登记)+ LoadScene(切换)+ 组织(菜单/关卡/结束)。
◆
跨场景数据
数据“带到下个场景”。
【问题】切场景对象销毁,数据丢失。
【方案1 静态类】用静态字段存跨场景数据:
public static class GameState { public static int score; public static int level; }
切场景后 GameState.score 还在。
【方案2 单例 DontDestroyOnLoad】管理器跨场景(第 172 课):
GameManager/PlayerStats 常驻。
【方案3 PlayerPrefs】持久化存档(第 220 课)。
【选择】临时数据(当前局)用静态/单例;持久数据用 PlayerPrefs/JSON。
【注意】DontDestroyOnLoad 对象在多个场景间保留:别重复创建(单例检查)。
【UI 引用】UI 在各场景内重建:常驻管理器用“场景加载事件”重新绑定 UI(进阶)。
【测试】主菜单选关 → 关卡读取数据 → 结束回传。
【完成】数据“跨场景”。
【推荐】GameManager 常驻 + PlayerPrefs 持久。
✅
跨场景三方案:静态类(临时)、单例(管理器)、PlayerPrefs(持久)。按需选。
⚠
常见错误与排查
⛔
错误:
切场景报错找不到场景?
原因:
场景没进 Build Settings
解决:
File → Build Settings 把所有场景加进列表;用场景名与索引对应。
★
动手练习
课后小任务(做出来才算真的学会)
把多场景加进 Build
实现菜单↔关卡↔结束切换
用静态类传递分数
✓
本节小结
多场景管理完成。下一课做性能测试与基准。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
调试技巧(断点与日志)
下一课 →
性能测试与基准
↑