上面分了七篇文章总结了C#反射的使用。在unity开发过程中客户端逻辑尽还是尽可能不去使用反射,毕竟反射的效率太低…
但是在做编辑器、工具链相关等不用注重效率时,那是真香。
在学习与尝试游戏框架过程中,我发现多数菜单都是在顶部MenuItem中,而设置相关要么是直接写死在代码,要么时每个工具都搞一个自己的窗口,如:打Assetbundle,转换配置表,等等。那样真是太乱了。
那能不能将一个框架中所有设置模块,插件模块,工具链模块整合到一个窗口中呢?就像Unity中的Editor>Perference面板一样呢?
答案是当然可以。利用反射你也可以做出这样的整合工具,看下效果图:
这里展示两个功能并简单介绍下:
对于最左侧菜单模块:
创建一个类并继承提供的接口IPage
,即可在左侧添加一个菜单项。
1 | [ |
对于设置模块:
提供一个接口IPathConfig
,两个特性SettingPropertyAttribute
,SettingMethodAttribute
,需要添加设置的模块只需继承接口,并使用特性标记需要的字段或方法,即可生成一个对应的设置页签,及不同的设置选项。
对于API文档模块。
使用特性APIInfo
,利用反射即可将填写的信息自动生成文档,方便代码维护。
怎样?心动吗?当然C#反射的强大,笔者略懂一点点,若有不对的欢迎指正。
本系列完…