美文网首页xlua探索笔记
[xlua]探索笔记之自定义装载器

[xlua]探索笔记之自定义装载器

作者: 符文剑舞 | 来源:发表于2020-10-20 23:38 被阅读0次

    写在前面的话

    这个世界也许是一面镜子,你对它笑它也对你笑。

    lua脚本的填装方式在xlua里有三种方式,为什么会有三种方式呢?

    第一种方式,

    LuaEnv luaenv = new LuaEnv();

    luaenv.DoString("require('mylua')");

    第二种方式,通过System.IO 打开一个lua脚本,读取里面的字符串然后调用lua的DoString方法。

    第三种方式, 自定义装载器,其实require的底层实现也是走这个装载器,看起来不一样而已。

    图1

    图1是xlua里提供的例子。看到这个设计的时候,我叹了口气......都是被逼的。

    因为,lua脚本作为资源走更新流程,也就意味着某些软件/顽皮的玩家会对脚本进行一波一波的修改。有的纯属好奇,有的也就是顽皮孩子的想法。总之,为了整个环境的安稳,也避免一些顽皮的孩子惹出不必要的麻烦。于是就有了自定义装载这个东西。

    1.在AddLoader 的方法里可以定义脚本的解密方法,在资源发布的时候就可以加密一下。例子里有 SignatureLoader.cs脚本,(虽然有个加密、解密的例子,我确信开发的时候都会有人去魔改这个的类的,毕竟熊孩子还是不少的)

    图3

    2.另外呢!我注意到xlua里有一个更好玩的东西luagit。一些其他的资料表明这个luagit不是哪都可以用的(iOS上就难说了),我确信在这个自定义装载里luagit会有一席之地。

    这些东西我是怎么知道的?

    嗯...cocos2d-x 4.0的代码里,有一摸一样的东西。

    图5 图六 图七

    最后,我们所以会使用luajit,还不是为了优化性能什么的。我们所以会用加密还不是因为这个世上总有几个熊孩子?所以,这些技术手段也只是规劝性质的让熊孩子别皮了,你真的要皮,还是会继续加密。就成了我开头说的,世界是一面镜子。不如,我们都对着镜子微笑吧!这些技术说到底只是手段而已,你对着镜子微笑,镜子也对着你微笑,世界就变得很美好了。

    相关文章

      网友评论

        本文标题:[xlua]探索笔记之自定义装载器

        本文链接:https://www.haomeiwen.com/subject/ezwjmktx.html