Skip to content

This framework encapsulates some common exercises. By calling the interface in the framework, you can easily implement some complex operations. For example, you only need one line of code, and you can drag the object. Most importantly, the framework allows the user to complete the interaction process through configuration files.

License

liangdaojun/Unity-Framework

Repository files navigation

DataDrivenCom

Unity-Framework

数据驱动组件是实现以数据来驱动事件交互行为,即,在组件运行状态下,解析从外部(服务器、客户端)的数据并执行相应的操作;数据对组件来说可以看作指令,组件解析相应的命令并执行相应的操作。视频地址:https://www.bilibili.com/video/av84863475

Introduction

客户端可以把DataDrivenCom当作一个组件使用。整个组建是以分层的架构实现的,最低层的服务即可以为组件高层提供服务,也可以为客户端程序提供服务。因为组件的底层封装了一些通用的功能,包括:

1、封装了一些通用的事件,客户端可以在程序的内部轻松的调用这些事件;
这些指令分成操作资源类(指令名称以“op”开头)、事件响应类(指令名称以“event”开头)。op类主要操作被组建托管的资源(模型、UI
脚本);event类主要调用组件内实现的事件,这些事件主要包括鼠标事件(拖拽,左、右键单击,双击,滑轮滚动等)、GameObject事件(射线检测、发出射线、
物体碰撞等)。对这些指令类或者方法可以很容易被扩展,比如,要添加键盘事件,只需要添加一个键盘事件类并实现指令接口即可;值得一提是,这些事件的调用
不仅组件内部可以调用,客户端程序也可以调用,因为这些事件已经实现成GameObject的扩展方法。要调用一个事件,客户端不必创建单独的脚本,并用Update类
似的方法来检测了,只需要调用GameObject这些扩展方法就能完成相应的时间检测,并在事件的条件满足时调用客户端自定义的函数。而且,客户端并不会获得这些
实现的细节(组件封装了这些细节,它对用户来说是透明的)。关于指令的详细介绍,请参见DataDrivenCom API。

2、提供了一些托管资源的思想和通用方法(如,查找资源中的某个物体),达到了和直接持有这些资源同样的查询速度。组件内部通过名字托管,利用了字典的Hash
散射来查询这些物体,并返回该物体的对象。

3、提供了一些通用的操作资源的方法。如,使物体发光(表明出现高光效果),改变物体的transform属性,控制动画的播放等等,这些在客户端实现虽然相当容
易,组件还提供了根据字符串来实现这些操作的方法,根据上面的功能,将实现控制逻辑和资源的解耦。用户只要要添加或更改配置文件即可完成整个程序的控制逻
辑。通过配置文件对游戏资源进行管理,极大地实现了代码的重用,而且在很大程度上加快了开发效率。

4、提供了一组控制UI的操作。组件内部对NGUI的一些源码进行了修改,客户端可以可视化地操作要被控制的UI控件,只需要该UI空间被框架托管,就可以在配置文
件中控制UI资源层,获取UI并更改其属性。

5、DataDrivenCom提供了一组函数注册机制来实现控制反转(IOC),并在程序的内容提供了注册类模板,客户端(用户)可以通过扩展模板类来容易地扩充要被重
用的函数。该组件也提供了在配置文件中对客户端函数的依赖注入,在框架和客户端程序交互的工程中,将配置文件中的数据注入到客户端函数中的相应参数中。

6、提供了一组常用的工具类,如,从字符串中提取一组任意类型数字,一个可控制颜色的控制台打印方法等。

DataDrivenCom 架构图

DataDrivenCom 时序图

About

This framework encapsulates some common exercises. By calling the interface in the framework, you can easily implement some complex operations. For example, you only need one line of code, and you can drag the object. Most importantly, the framework allows the user to complete the interaction process through configuration files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published