跳至主内容
← 返回

场景管理

本节介绍如何有效地组织和管理场景,包括层级结构、性能优化和最佳实践。

场景层级结构

层级面板概览

Scene (场景根)
├── Spawn Point           ← 用户出生点
├── Scene Preview Camera  ← 缩略图相机
├── Environment           ← 环境组
│   ├── Ambient Light
│   ├── Directional Light
│   ├── Skybox
│   └── Ground Plane
├── Architecture          ← 建筑组
│   ├── Floor Plan
│   ├── Walls (Group)
│   │   ├── Wall 1
│   │   ├── Wall 2
│   │   └── Door
│   └── Furniture (Group)
│       ├── Table
│       └── Chairs
├── Interactive           ← 交互元素组
│   ├── Way Points
│   ├── Audio Sources
│   └── Triggers
└── Decorations           ← 装饰组
    ├── Plants
    └── Pictures

组织原则

1. 按功能分组

好的组织:                    差的组织:
├── Building                 ├── Model 1
│   ├── Walls                ├── Light 1
│   ├── Roof                 ├── Model 2
│   └── Door                 ├── Model 3
├── Furniture                ├── Light 2
│   ├── Table                └── Model 4
│   └── Chairs
└── Lighting
    ├── Main Light
    └── Accent Light

2. 命名规范

类型 命名示例 说明
建筑 "Main Building" 描述性名称
灯光 "Ceiling Light 01" 类型+编号
家具 "Conference Table" 功能描述
装饰 "Plant - Ficus" 类别-具体

3. 层级深度建议

  • 建议最大深度:4-5 层
  • 过深的层级影响性能
  • 过浅的层级难以管理
推荐深度:                    避免过深:
Scene                         Scene
└── Group                     └── Group
    └── Subgroup                  └── Group
        └── Element                   └── Group
                                            └── Group
                                                └── Element

组的用法

创建组

方法 1:选择后成组

  1. 选择多个元素(Ctrl+点击或框选)
  2. 右键 → Group(或 Ctrl+G)
  3. 输入组名称

方法 2:先创建空组

  1. 右键 Scene 或 Group
  2. Add Element → Group
  3. 拖拽元素到组内

组的特性

特性 说明
变换继承 子元素跟随父组变换
可见性控制 隐藏组会隐藏所有子元素
批量操作 可对组内所有元素批量设置
嵌套支持 组可以包含其他组

解组

  1. 选择组
  2. 右键 → Ungroup(或 Ctrl+Shift+G)
  3. 子元素提升到父级

组的最佳实践

场景结构模板:

Scene
├── Spawn Point                    ← 出生点(必需)
├── Scene Preview Camera          ← 预览相机
├── [Scene Name] - Environment    ← 环境
│   ├── Lighting                  ← 所有灯光
│   ├── Ground/Sky                ← 地面天空
│   └── Navigation                ← 导航相关
├── [Scene Name] - Architecture   ← 建筑结构
│   ├── [Building 1]
│   ├── [Building 2]
│   └── Connectors
├── [Scene Name] - Interactive    ← 交互元素
│   ├── Audio
│   ├── Triggers
│   └── Waypoints
└── [Scene Name] - Decorations    ← 装饰
    ├── Props
    └── Details

可见性和锁定

可见性控制

切换可见性:

  • 点击层级面板中的眼睛图标 👁️
  • 或修改属性面板的 Visible 属性

用途:

  • 暂时隐藏不需要编辑的元素
  • 减少视口杂乱
  • 测试不同配置

锁定元素

锁定功能:

  • 防止意外选择和编辑
  • 在复杂场景中保护已完成的部分

操作方法:

  • 目前场景编辑器无内置锁定功能
  • 可通过 Group 并命名 "[LOCKED]" 提示

选择和过滤

选择技巧

操作 方法 效果
单选 点击 选中一个元素
加选 Ctrl+点击 添加/移除选择
范围选 Shift+点击 选择两个元素之间的所有元素
全选 Ctrl+A 选择所有元素
反选 - 目前不支持
选择子元素 双击组 选择组内所有元素

框选

在视口中拖拽框选:

  • 从左上到右下:完全包含在选择框内的元素
  • 从右下到左上:接触选择框的元素

性能优化

静态 vs 动态

Static Mode(静态模式):

  • 标记为静态的元素会自动优化
  • 静态几何体可以合并,减少 draw call
  • 提高渲染性能

设置静态:

  1. 选择元素
  2. 在属性面板找到 Static 选项
  3. 勾选启用

建议标记为静态的元素:

  • 建筑结构
  • 固定家具
  • 装饰物
  • 地面

建议标记为动态的元素:

  • 交互元素
  • Spawner 生成的对象
  • 可能移动的元素

灯光优化

优化项 建议
阴影 只有主光源开启阴影
范围 合理设置光源范围
数量 点光源建议 < 10 个
烘焙 静态光照可预先计算

模型优化

面数控制:

  • 主要模型:10k-50k 面
  • 次要模型:< 10k 面
  • 远景模型:< 1k 面

纹理优化:

  • 使用纹理图集
  • 控制纹理尺寸(最大 2048x2048)
  • 使用压缩格式

场景大小

建议限制:

  • 总元素数量:< 500
  • 三角形总数:< 500k
  • 纹理内存:< 100MB
  • 导出文件大小:< 50MB

导航网格

Floor Plan 的作用

Floor Plan 自动生成导航网格,决定用户可以在哪里行走。

导航网格生成

┌─────────────────────────────────────────────────────────────┐
│                    导航网格生成原理                          │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│   1. 分析场景几何体                                          │
│      ┌──────┐      ┌──────┐                                 │
│      │Object│      │Object│                                 │
│      └──┬───┘      └──┬───┘                                 │
│         │             │                                      │
│   2. 识别可行走表面                                          │
│      ░░░░░░░░░░░░░░░░░░░░  ← 标记为可行走                   │
│      ░┌────┐░░┌────┐░░░░                                    │
│      ░│    │░░│    │░░░░  ← 障碍物周围标记为不可行走         │
│      ░└────┘░░└────┘░░░░                                    │
│                                                              │
│   3. 生成导航网格                                            │
│      ┌─┬─┬─┬─┬─┬─┬─┬─┬─┐                                    │
│      ├─┼─┼─┼─┼─┼─┼─┼─┼─┤  ← 网格单元                        │
│      ├─┼─┼─┼─┼─┼─┼─┼─┼─┤                                    │
│      └─┴─┴─┴─┴─┴─┴─┴─┴─┘                                    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Floor Plan 参数调优

参数 说明 建议值
Agent Height 角色高度 1.6-1.8m
Agent Radius 角色半径 0.2-0.3m
Max Climb 最大攀爬高度 0.3-0.5m
Max Slope 最大坡度 45°
Cell Size 网格精度 0.1-0.2m

常见问题

用户穿墙?

  • 增加 Agent Radius
  • 确保墙壁有碰撞体

用户无法走上台阶?

  • 增加 Max Climb 值
  • 或添加斜坡

导航网格缺失区域?

  • 检查 Floor Plan 位置
  • 确保覆盖整个可行走区域
  • 调整 Cell Size

场景模板

创建可复用模板

保存为模板:

  1. 组织好场景结构
  2. 删除场景特定内容
  3. File → Save As Template
  4. 命名模板

使用模板:

  1. File → New Project
  2. 选择你的模板
  3. 基于模板创建新项目

推荐模板结构

会议室模板:

Meeting Room Template
├── Spawn Point (入口)
├── Environment
│   ├── Ambient Light
│   ├── Directional Light
│   └── Floor Plan
├── Room Structure
│   ├── Floor
│   ├── Walls
│   └── Ceiling
├── Furniture
│   ├── Conference Table
│   └── Chairs (x8)
├── Media
│   ├── Screen (Media Frame)
│   └── Whiteboard
└── Navigation
    ├── Way Point (入口)
    └── Way Point (屏幕前)

版本控制

项目版本

场景编辑器自动保存版本历史:

  • 每次保存创建新版本
  • 可以查看历史版本
  • 可以回滚到特定版本

查看历史

  1. File → Version History
  2. 浏览历史版本列表
  3. 点击版本预览
  4. 选择 Restore 恢复

场景清单

发布前检查

必需元素:

  • 至少一个 Spawn Point
  • Scene Preview Camera 设置好角度
  • 合理的灯光配置
  • Floor Plan 覆盖可行走区域

性能检查:

  • 静态元素已标记 Static
  • 不必要的阴影已关闭
  • 模型面数合理
  • 纹理尺寸适中

体验检查:

  • 出生点位置合理
  • 用户可以自由导航
  • 重要内容可见
  • 音频设置合适

下一步