Appearance
场景模板

一句话理解
Scene Template 是“新建场景时用的母版”。
它不是运行时切场景用的,不是 SceneManager.LoadScene 那一套。
它是编辑器工作流工具,作用是:以后每次创建新关卡、新 UI 场景、新战斗场景时,不用从空场景重新搭相机、灯光、Canvas、管理器、根节点、默认配置。
最常用流程
先搭一个标准场景,比如
LevelTemplate.unity里面放好常用结构:
Main Camera Directional Light Canvas EventSystem LevelRoot PlayerSpawnPoint EnemyRoot PropsRoot GameManager在 Project 面板里选中这个场景
右键场景文件,选择:
Create > Scene Template From SceneUnity 会生成一个场景模板资产,比如:
Level.sceneTemplate以后新建场景时:
File > New Scene选择你的
Level模板,点击Create
这样 Unity 就会根据模板创建一个新场景,比如 Level01.unity。
另一种创建方法
如果你正在编辑当前场景,也可以用:
c
File > Save As Scene Template这会把当前打开的场景保存成模板。
官方文档也列了三种创建方式:空模板、从已有场景创建、从当前场景创建。参考:Unity Creating scene templates
最重要的概念:Clone 和 Reference
这是场景模板里最容易卡住的地方。
Clone 是复制一份资源:
c
模板里的 Sky_Level.mat
-> 新场景生成 Sky_Level_Copy.mat你改新场景的材质,不会影响模板,也不会影响其他关卡。
适合 Clone 的资源:
c
每关独立材质
每关独立光照数据
每关独立 Timeline
每关独立配置 ScriptableObject
每关独立 NavMesh 数据Reference 是引用同一个资源:
c
模板和新场景都指向 Player.prefab你改 Player.prefab,所有使用它的场景都会变。
适合 Reference 的资源:
c
Player.prefab
通用 UI Prefab
字体
通用音效
全局配置
通用脚本
通用材质初学口诀:
c
每个关卡要单独改的,用 Clone。
所有关卡都应该统一的,用 Reference。在模板 Inspector 里可以看到 Dependencies,那里就能设置某个依赖是 Clone 还是 Reference。参考:Unity Editing scene templates
一个实际案例:2D 关卡模板
你可以创建一个 LevelTemplate.unity,里面放:
c
Main Camera
Global Light 2D
Grid
Tilemap_Ground
Tilemap_Wall
Canvas
EventSystem
PlayerSpawnPoint
EnemyRoot
CoinRoot
LevelManager然后保存成 Level2D.sceneTemplate。
以后你做新关卡:
c
File > New Scene
选择 Level2D
Create
保存为 Level01.unity下一关再来一次:
c
File > New Scene
选择 Level2D
Create
保存为 Level02.unity这样每关都有统一结构,不会今天叫 EnemyRoot,明天叫 Enemies,后天又叫 MonsterParent。项目一大,这个统一性非常值钱。
模板 Inspector 里常见设置
选中 .sceneTemplate 文件后,Inspector 里常见几块:
c
Template Scene:这个模板基于哪个场景
Title:在 New Scene 窗口里显示的名字
Description:模板说明
Pin in New Scene Dialog:是否固定显示在新建场景窗口顶部
Thumbnail:模板预览图
Dependencies:依赖资源,决定 Clone 还是 Reference
Scene Template Pipeline:高级功能,创建场景时自动执行编辑器代码新手先重点掌握:
c
Template Scene
Title
Description
Pin
DependenciesScene Template Pipeline 先不用急,它适合团队项目里自动命名、自动生成目录、自动填配置。
和“复制场景”的区别
你可能会问:那我直接复制 Level01.unity 不就行了吗?
小项目可以。但模板更规范:
c
复制场景:容易带着旧关卡残留数据
场景模板:专门作为干净起点
复制场景:依赖资源容易搞混
场景模板:可以明确 Clone / Reference
复制场景:团队里每个人做法可能不同
场景模板:统一大家的新场景结构所以,场景模板本质上是“项目规范工具”。
你现在该怎么练
做一个练习:
c
1. 创建 LevelTemplate.unity
2. 放 Camera、Light、Canvas、EventSystem、PlayerSpawnPoint、LevelRoot
3. 用 Create > Scene Template From Scene 生成模板
4. File > New Scene
5. 选择你的模板
6. 创建 Level01.unity
7. 再创建 Level02.unity
8. 对比两个新场景的结构是否一致最后记住这一句就很稳:
c
Scene Template 用来批量创建“结构一致、起点干净”的新场景。参考资料:Unity 官方 Scene Templates、Creating/loading/saving Scenes、Scene template settings。