JSaver:数据存储服务模块。JEngine.Core
这个是存储到本地的,使用的是UnityEngine.PlayerPrefs的技术,好处就是作者在存储数据的时候做了一定的加密处理用来防止数据外泄。
保存数据:
获取数据,简单类型:
获取数据,自定义类型:
检查和删除数据:
字符串测试:
JSON测试:
Protobuf测试:
JEvent:数据事件监听与广播。JEngine.Event
先看看内部吧:
日志信息显示和默认静态实例。
注册、注销与信息广播。
如何使用呢?
我们先看案例的事件监听对象的定义:
标记特性为ThreadMode.Main的使用是监听全局,主要是这里面包含Unity引擎的成员或方法时(Debug除外)就必须设置为主线程Main。
不用和Unity引擎的成员或方法进行打交道(交互性),就可以标记特性为子线程。
当然个别的方法也可以使用特性进行事件的注册和监听。
实例化事件监听的对象:
其中UIManager里面有UnityUI控件,案例中使用的是ClassBind进行实例化操作的。
使用JEvent实例进行监听者的注册:Register
使用JEvent实例进行消息广播:Post
广播后这样注册监听者们对应的信息参数的方法就可以收到信息并进行相关的业务处理了。
使用JEvent实例进行监听注销:Unregister
案例里发现了JAction一个链式操作执行行为,这个类还是有些强大的,对做一些额外的业务处理时挺方便的,由于文本篇幅较长再这里不再截图显示了,大家可以看源码。
使用可以像JEvent案例中那样使用也可以使用using(var a = new JAction()) { ... }进行有效资源释放。
Convert:类型转换。
这个案例主要告诉我们JBehaviour的派生类需要通过扩展方法gameobject.CreateJBehaviour或静态方法JBehaviour.CreateOn进行实例化。
因为都继承了IDemo的接口,所以可以使用IDemo的列表将d1和d2都添加进来进行管理。
CrossDomain:跨程序集类型使用,热更工程和Unity工程。
这里就是说,在热更工程中可以将Unity脚本进行继承并正常使用AddComponent和GetComponent获取组件的实例。
以下是热更工程中正常使用的Unity引擎的方法:
gameObject.GetComponent
gameObject.AddComponent
GameObject.Instantiate(m)
var result = FindObjectOfType
var results = FindObjectsOfType
SendMessage("MsgToSend", 200)
Invoke("Do1", 1)
InvokeRepeating("Do", 0, 1)
Instantiate:实例化预置资源。
这里使用了JPrefab和AssetMgr资源管理工具类,支持同步和异步的资源加载以及加载资源进度和对实例化的资源进行管理等操作。因为框架中内置了XAsset热更资源框架,里面使用开发模式可以获取资源了,这里就不过多介绍了。
动态使用ClassBind。