小白Unity框架开发学习记录(三)

写在开头

    在上一篇文章中,我对框架的基本通信模块和对事件的处理进行了讲解,而现在我又为框架加入了一些新的功能,这篇文章将介绍这些功能。


框架启动器

    在上篇文章中我们已经搭建好了最基本的通信模块,现在我们要每个Manager都运行起来,实现各个Manager的通信。用普通的方法可能是将各个Manager都在制作场景时先挂载到一个物体上,可是这样的方法就要求每次都要修改场景,所以我采用了反射的方法来挂载我们所需要的Manager。

    反射能够帮我们节省很多麻烦,比如对各个Manager的一些配置我们也可以写一个配置文件对其进行设置,这将节省我们大量的修改和编译时间,下面对框架反射的具体设置进行讲解。

1. 配置文件

    首先我们通过一个json文件写入我们的一些配置

frameworkconfig.json

    在这个json文件中initmanager表示我们要在游戏开始时挂载的Manager,managername表示Manager的类名,managerId表示Manager的独有ID用来做消息转发时区别接收的对象使用,stepofManagerId表示一个Manager所能绑定的最大消息数。


2.配置类

然后我们通过一个单例配置类来读取配置文件信息

GlobalConfig.cs


    配置类通过JsonUtility类进行转换,把json信息转化成类,然后把配置信息都存储在GlobalConfig的单例类中,之后就可以通过这个单例类获取到配置信息。

Config.cs
ManagerOption.cs

    用到的普通C#对象,通过Serializable使其可序列化,能够通过json构建对象。


3.消息中心

    在加载完配置信息后,我们就需要使用这些信息去初始化我们的Manager。

ManagerCenter.cs

    在消息中心中我们拿到要挂载的Manager信息,之后可以通过InitManager这个方法使用反射把所有需要的Manager的加载出来。消息中心还承担着把不同Manager消息进行发送的中继器作用,所有Manager都将通过它与其他的Manager进行通信。


4.框架入口

    最后我们通过一个框架入口把我们所需要初始化的对象一次性加载出来。

FrameworkEntry.cs

    入口类负责框架的初始化操作,所有的Manager也都将挂载在FrameworkEntry所在的游戏物体上。



结尾

    这周因为比较忙所以没有对框架进行很多的开发,争取这一周能多写一些东西,框架的开发还是任重而道远。项目已上传GitHub。项目地址



参考资料

《C#反射(Reflection)详解》

《Unity3D_(数据)JsonUtility创建和解析Json》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:[http://blog.csdn.net/liu88010988/article/details/5154...
    hackywit阅读 6,038评论 0 26
  • 一个人的一生!你有野心!那么你的努力!你的付出!一个格局!你的心态!一定要配的上你的野心! 在这个大跨步的时代!什...
    生命的起航阅读 404评论 0 0
  • 能量朗读 课间阅读王崧舟老师的《从今天起,和孩子一起朗读吧》,看到“能量朗读”时,想到,我上初三时的班主任...
    呵妈阅读 481评论 0 3
  • Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效...
    dr2009阅读 3,477评论 4 99
  • [预定资料流程库] 个人网站制作的流程 要领一:确定网站主题 做网站,首先必须要解决的就是网站内容问题,即确定网站...
    北京大数据苏焕之阅读 277评论 0 1