跳转至

建筑特效

建筑特效系统用于在建筑创建、修改和移除时播放 Niagara 特效或音效。

插件支持项目级默认特效,也允许单个建筑使用自己的特效配置。

支持的事件

事件 说明
Build Confirmed 建筑成功创建后触发。
Changed 建筑被移动或发生修改后触发。
Removed 建筑被移除后触发。

特效只负责视觉和声音表现,不影响建筑创建、移动或移除逻辑。

创建 Effect Set

在 Content Browser 中创建一个建筑特效数据资产:

右键 → Miscellaneous → Data Asset

选择:

Building Effect Set

然后为需要的事件配置 Niagara 特效和音效。

未配置的事件不会播放效果。

项目默认特效

打开:

Edit → Project Settings → Building System

设置:

Default Effect Set

该 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等事件然后再单独处理。