场景与场景节点

本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。

场景

场景是一个节点树,代表您游戏中的某个内容——关卡、菜单、角色、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 中审查更改、解决合并冲突或编写批量编辑脚本。


← 所有文档 编辑此页面