外观
TA需要做的事情
约 533 字大约 2 分钟
2026-03-14
重要
在以下提到的文件夹路径之下,你应当保持其下的子文件夹和文件的组织结构是良好的。如果你不知道什么是良好的文件夹结构,问问硅基生物。
注意
你不应当改动以下声明的文件夹路径之外的文件,如果你发现并确信有需求无法在不改动其它文件的条件下实现,详细罗列需求并向程序汇报;你不应当自行修改。
StaticData
首先你需要在Scripts/StaticData/VFX目录下定义某种类型的VFX所需的参数包,它必须是一个readonly struct类型 (严禁使用class或record)
警告
这是你唯一允许在Cofcity.UI程序集外进行的操作
Encoder
在Scripts/UI/VFX下创建实现了IVfxPayloadEncoder<VFX参数包>的子类,并将其转换为可提交至EventAttribute的形态
隐藏构造函数,实现一个静态单例,用于VfxKey使用
VfxKey
根据特效类型在Scripts/UI/VFX/VfxKeys.cs中集中静态定义(或者你可以按职能将其拆分为数个静态类)VfxOneShotKey或VfxAttachKey
Subscriber
在Scripts/UI/VFX下,用于接受ISubscriber<事件参数包>和IVfxService的注入,使用定义的VfxKey,并且执行对应特效的唤起的类
显然此处需要用到依赖注入的相关知识,所有的Subscriber应当被注册进某一个新创建的FeatureInstaller中,它的group应当选择StageFeature。
注意: 你应当根据不同的Subscriber所需的注入服务妥善选择它们的group,不过目前所有的特效均是在StageScene中的,所以选择StageFeature即可,它代表这些installer只会在StageScene生效
重要
这里一个非常关键的点在于:VFX参数包≠事件参数包。比如业务端只会传出“ID为1的单位生成了”,而Subscriber在接受到该信号后,需要自行从比如UnitViewPresenter中抓取用于显示的GameObject的Transform或其它信息,自行进行转译并生成VFX参数包之后再交给service进行处理
更新日志
2026/4/16 11:07
查看所有更新日志
e4055-Merge pull request #12 from azaneNH37/doc于