Awesome
UniVue源生成器——自动生成接口代码
原生成器的使用
注:使用源生成器需要Unity编辑器的版本为2021以上
图文教程:UniVue更新日志:使用源生成器优化Model和ViewModel层的设计-CSDN博客
1.导入源生器的dll文件到Unity中
将仓库中dlls目录下的UniVue.SourceGenerator.dll程序集文件导入到Unity的Assets目录下的任意一个目录。
2.配置dll文件
导入dll文件后需要将进行以下步骤:
- 在资产浏览器中,单击UniVue.SourceGenerator.dll文件以打开插件检查器窗口。
- 转到为插件选择平台(英文:Select platforms for plugin)并禁用任何平台(英文:Any Platform)。
- 转到包含平台(英文:Include Platforms)并禁用所有选项。
- 转到资产标签,然后打开资产标签子菜单。(就是点击那个检查面板右下角的蓝色小图标)
- 创建并分配一个名为 RoslynAnalyzer的新标签。为此,请在“资产标签”子菜单的文本输入窗口中输入“*RoslynAnalyzer*”。此标签必须完全匹配且区分大小写。为第一个分析器创建标签后,标签将显示在****“资产标签****”子菜单中。您可以单击菜单中的标签名称以将其分配给其他分析器。
- 点击Apply,等待编译完成。
- 重启Visual Studio编辑器。
3.使用特性
在使用UniVue的特性时,需要注意以下两点:
- 只能在一个非嵌套的类上使用;
- 依赖类生成的特性,那么类必须有partial关键字修饰;
内置的特性的用法:
3.1 事件
EventRegisterAttribute:任何类上添加此特性将会自动实现IEventRegister接口,实现此接口的类才允许注册事件回调;
EventCallAttribute:注解此特性的方法将会映射一个EventCall对象,同时此特性的类上必须有EventRegisterAttribute特性,否则将不起作用;
3.2 模型
AlsoNotifyAttribute:注解在字段上,当前属性更改时也通知指定的其它属性;
BindableAttribute:注解此特性的类将自动实现IBindableModel接口,将会为这个类中所有字段自动生成属性方法;
CodeInjectAttribute:在属性方法的指定位置注入指定代码;
DontNotifyAttribute:指定不要为注解此特性的字段生成通知属性;
PropertyNameAttribute:为字段定义属性名称;
3.3 枚举
EnumAliasAttribute:为一个枚举值定义其它别名(不需要partial关键字);