场景与场景节点
本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。
场景
场景是一个节点树,代表您游戏中的某个内容——关卡、菜单、角色、UI 界面。您在游戏中看到的一切都存在于场景之中。
场景保存为项目 assets/ 文件夹中的 .prefab 文件。该格式是专为版本控制设计的可读 JSON:
assets/
scene-01.prefab ← 一个场景
player-scene.prefab ← 另一个场景
enemies/
grunt.prefab
boss.prefab
启动场景是游戏启动时加载的第一个场景。它在项目设置中配置。
节点(游戏对象)
节点(也称为游戏对象)是场景中的单个元素。节点以树的形式组织:每个节点有且仅有一个父节点和任意数量的子节点。这种父子层级至关重要——变换父节点(位置、旋转、缩放)会自动变换其子节点。
场景根节点
├── 摄像机
│ └── 方向光(摄像机的子节点——跟随摄像机)
├── 地面
│ ├── 树(地面的子节点——随地面移动)
│ └── 岩石
└── 玩家
└── 武器
每个节点都有一个 Transform 组件——3D 空间中的位置、旋转和缩放。即使是只有 Transform 的空节点也很有用:它可以作为挂载点、生成位置或分组父节点。
在编辑器中操作节点
在场景层级面板中,您可以:
- 选择一个节点以检查并编辑其组件。
- 通过场景 → 添加空对象 创建新的空节点。
- 通过在层级中将节点拖拽到另一个节点上来重新父级化。
- 通过上下拖拽重新排序同级节点。
- 通过右键上下文菜单复制或删除。
要为选中的节点添加组件,使用检查器中的添加组件 ▾ 按钮。
磁盘上的场景文件
.prefab 文件将整个节点树存储为结构化的 JSON。它易于阅读且方便进行差异对比:
{
"name": "MyScene",
"nodes": [
{
"name": "Camera",
"transform": { "position": { "x": 0, "y": 5, "z": 10 } },
"components": [ /* ... component data ... */ ]
},
{
"name": "Ground",
"transform": { "scale": { "x": 10, "y": 1, "z": 10 } },
"children": [
{ "name": "Tree", "transform": { "position": { "x": 2, "y": 0, "z": -3 } } }
]
}
]
}
您很少需要手动编辑 .prefab 场景文件——编辑器会处理这一切——但这种格式使您能够轻松地在 Git 中审查更改、解决合并冲突或编写批量编辑脚本。