Osheep

时光不回头,当下最重要。

30分钟把KSFramework中的slua改成xLua

KSFramework是一个Unity 5 Asset Bundle开发框架和工具集,专注于运行时热重载,使用了SLua作为脚本引擎。

1.

最近,xLua在腾讯作背书情况下发布,完善的机制、优越的性能,在Unity开发圈里火速升温,老牌的slua和ulua,都被抛在身后。

如果你要做一个新项目,估计,xLua将会是首选。

ulua和slua,都是在作者实际项目需求的驱动下诞生;而xLua,在同样是需求的驱动下,作者全职的开发,同时经历多个不同公司项目的考虑,为再加上公司资源和品牌的加持,火爆自然是迟早的事,这给予人足够的信心。

这也包括我在内,虽然也为slua贡献了些代码,但是看到xLua后,我觉得这货能为我省很多的时间啊。与死磕代码相比,我更喜欢一些能为人节省上班时间的技术产品出现。

作为一个被非技术人员管理的技术人员,需求是永远做不完的,非到不得已,真没必要重复造轮子。

2.

朋友问我,能不能把KSFramework中的slua改成xlua啊,因为他在面试新公司,说会这个可以让他更容易找到工作。

这个很令我意外,虽然项目里有用到,但是就算是坐在我旁边的人,可能都不知道我做这个东西。KSFramework更像一个组件工具集,嵌进去、用起来、忘记存在。

3.

在他的建议下,我决定尝试加入xLua的支持。没想到只花了半个小时。

因为KSFramework是KEngine+Slua的合体,核心还是KEngine。

KSFramework主要是花费业余时间搞的,虽然想把Web前端的MVVM模式搬成一个Unity UI框架,一直也没有时间往深去做更多功能,只是薄薄的一层Lua桥接。

所以KSFramework中具体的Lua逻辑代码其实是非常非常的少,桥接slua的部分仅仅是薄薄一个代码文件——LuaModule.cs。

《30分钟把KSFramework中的slua改成xLua》

仅改动几个Lua桥接相关文件

更换不同的Lua引擎,用一句话来形容:

把Lua引擎中运行代码的接口改掉。

《30分钟把KSFramework中的slua改成xLua》

修改执行文件的入口

xLua的易用性设计得不错,在编辑器模式下导入进来,也不用做什么特别的工作,基本就能跑起来了。

我也不用怎么看它的运行机制,桥接代码改完了,也顺利跑起来了。兼容性是棒棒的,在不生成静态代码的状态下,都能把大部分之前slua不支持的反射模式特性支持了。

完了,提交分支上:

KSFramework xlua分支

以上。

点赞