建筑特效¶
建筑特效系统用于在建筑创建、修改和移除时播放 Niagara 特效或音效。
插件支持项目级默认特效,也允许单个建筑使用自己的特效配置。
支持的事件¶
| 事件 | 说明 |
|---|---|
Build Confirmed |
建筑成功创建后触发。 |
Changed |
建筑被移动或发生修改后触发。 |
Removed |
建筑被移除后触发。 |
特效只负责视觉和声音表现,不影响建筑创建、移动或移除逻辑。
创建 Effect Set¶
在 Content Browser 中创建一个建筑特效数据资产:
选择:
然后为需要的事件配置 Niagara 特效和音效。
未配置的事件不会播放效果。
项目默认特效¶
打开:
设置:
该 Effect Set 会作为项目中的默认建筑特效。
| 设置项 | 说明 |
|---|---|
Default Effect Set |
当建筑没有指定独立 Effect Set 时使用的项目默认配置。 |
单个建筑配置¶
单个 Building Data Asset 可以决定如何处理建筑特效。
通常可以选择:
| 模式 | 说明 |
|---|---|
| 使用项目默认值 | 使用项目设置中的 Default Effect Set。 |
| 覆盖项目默认值 | 使用当前建筑指定的 Effect Set。 |
| 禁用特效 | 当前建筑不播放建筑特效。 |
普通建筑可以共用项目默认配置。
需要特殊效果的建筑,例如工作台、传送门或魔法建筑,可以配置独立的 Effect Set。
播放位置¶
特效默认使用建筑事件发生时的世界位置和旋转。
例如:
- 创建建筑时,在新建筑位置播放
- 移动建筑时,在修改后的建筑位置播放
- 移除建筑时,在建筑被删除前的位置播放
多人游戏¶
在多人游戏中,建筑创建、修改和移除由服务器确认。
客户端收到建筑事件后,在本地播放对应特效。
这样可以避免:
- 服务器重复播放视觉效果
- 每个客户端生成多个相同特效
- 将 Niagara 组件本身作为网络对象复制
Note
建筑状态由服务器同步,Niagara 和音效通常在每个客户端本地播放。
推荐配置¶
可以先创建一个通用 Effect Set,为所有普通建筑提供基础效果:
| 事件 | 示例效果 |
|---|---|
Build Confirmed |
建造粒子和放置音效 |
Changed |
简单移动粒子或确认音效 |
Removed |
拆除粒子和移除音效 |
特殊建筑再通过自身的 Building Data Asset 覆盖默认配置。
常见问题¶
| 问题 | 建议检查 |
|---|---|
| 所有建筑都没有特效 | 检查 Default Effect Set 是否已经配置。 |
| 只有某个建筑没有特效 | 检查该建筑的特效处理模式。 |
| 某个事件没有效果 | 检查 Effect Set 中是否配置了对应事件。 |
| 特效位置错误 | 检查特效的Offset偏移。 |
| 特效播放不及时 | 检查网特效本身是否有delay Time。 |
| 客户端没有播放特效 | 检查客户端是否收到对应的建筑网络事件。 |
| 特效被重复播放 | 检查是否同时在服务器和客户端主动播放了相同效果。 |
| 想要自定义复杂效果 | 建议监听OnBuildingNetEntityRemoved等事件然后再单独处理。 |