Skip to content

场景模板

unity-scene-template-workflow

image-20260730142238446

一句话理解

Scene Template 是“新建场景时用的母版”。

它不是运行时切场景用的,不是 SceneManager.LoadScene 那一套。

它是编辑器工作流工具,作用是:以后每次创建新关卡、新 UI 场景、新战斗场景时,不用从空场景重新搭相机、灯光、Canvas、管理器、根节点、默认配置。

最常用流程

  1. 先搭一个标准场景,比如 LevelTemplate.unity

  2. 里面放好常用结构:

    Main Camera
    Directional Light
    Canvas
    EventSystem
    LevelRoot
    PlayerSpawnPoint
    EnemyRoot
    PropsRoot
    GameManager
  3. 在 Project 面板里选中这个场景

  4. 右键场景文件,选择:

    Create > Scene Template From Scene
  5. Unity 会生成一个场景模板资产,比如:

    Level.sceneTemplate
  6. 以后新建场景时:

    File > New Scene
  7. 选择你的 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
Dependencies

Scene 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 TemplatesCreating/loading/saving ScenesScene template settings

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

本站访客数0总站访问量0本页访问量0