xLua使用require改变路径加载Lua脚本

这个问题我纠结了好久,应该是属于偏新手的一个问题,在写代码的时候因为两个lua脚本的关联问题,很多新人应该也会纠结于此。

xLua官方的例子加载脚本是这样的:

LuaEnv luaenvScriptCtrl = new LuaEnv();
luaenvScriptCtrl.DoString(@" require(‘LuaScriptList‘)");

此时如果lua脚本不在Resources路径下,或者不在默认的目录下,此时是加载不到对应的lua脚本的。

官方例子代码:SignatureLoaderTest.cs,第11行开始。

解决方式如下:

        LuaEnv luaenvScriptCtrl = new LuaEnv();
        LuaEnv.CustomLoader method = CustomLoaderMethod;

        //添加自定义装载机Loader
        luaenvScriptCtrl.AddLoader(method);
        luaenvScriptCtrl.DoString(@" require(‘LuaScriptList‘)");

    private byte[] CustomLoaderMethod(ref string fileName)
    {
        Debug.Log(fileName);
            fileName = "g2007_bai_jia_le/"+ fileName;
        //找到指定文件
        fileName = Application.dataPath + "/AssetsBuilt/" + fileName.Replace(‘.‘, ‘/‘) + ".lua";
        if (File.Exists(fileName))
        {
            return File.ReadAllBytes(fileName);
        }
        else
        {
            return null;
        }
    }

这下明白了,

fileName 就是LUA所在的位置,如果要适配手机,需要再加一个适配手机的宏。
时间: 2024-10-21 09:19:30

xLua使用require改变路径加载Lua脚本的相关文章

.net core中加载lua脚本的类库: MoonSharp

前言 MoonSharp是一个支持C#调用lua脚本的类库,支持.net, .net core, mono, unity,因此在.net core中也能够使用,而且加载和调用lua也很方便简单: 官网:http://www.moonsharp.org/ 源码:https://github.com/xanathar/moonsharp nuget:PM> Install-Package MoonSharp 使用 加载脚本 1 string scriptCode = @" 2 sum = 0

StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey", "*key*"),然后再使用相关的方法进行相关的批量操作,但是如果缓存数据量比较大,效率低下,那么可以使用Lua脚本进行模糊查询的批量操作:ScriptEvaluate(LuaScript.Prepare(...)). 通过keys进行模糊查询后的批量操作 批量删除 1 var

百度地图多点路径加载以及调整页面js

1 $(document).ready(function () { 2 /*用正则表达式获取url传递的地址参数,split后获得地址数组*/ 3 bmap = new BMap.Map('mapcontainer'); 4 var point = new BMap.Point(116.404, 39.915);//地图中心点 5 bmap.centerAndZoom(point, 15);//调整缩放以及设立中心点 6 bmap.enableScrollWheelZoom(); 7 var l

Oracle Data Pump不使用直接路径加载的场景

Situations in Which Direct Path Load Is Not Used If any of the following conditions exist for a table, then Data Pump uses external tables rather than direct path to load the data for that table: A global index on multipartition tables exists during

html中的图片、css、js等路径加载问题

网页文件的存取路径有3种:物理路径.绝对路径和相对路径. 物理路径就是你的文件放在主机上的具体位置,例如:D:\\image\\1.jpg 这种格式,该方法可以很快确定出你的文件,但是在网页显示路径基本很少用. 绝对路径是以网站的根目录(www)作为起始点,某文件在该项目中具体位置信息.比如你的网站放在 /var/www 中,那么 /var/www 就是你的根目录.如果文件 head.jpg 放在该目录的 image 里,那么 head.jpg 的路径信息就是 /image/head.jpg.但

servlet资源路径加载详解(3)

1.对于servlet的读取资源文件,要考虑工程文件路径和tomcat服务器的部署后的文件,所以一定要弄清楚加载文件路径位置,同时要考虑采用哪种方式: 一般有三种方式: (1).采用传统方式即jdk中提供的InputStream is = new FileInputStream("config.properties"); (2).采用ServletContext对象加载 (3).采用类加载器的方式 2.用代码检验 package cn.wwh.www.web.servlet; impo

图片路径加载失败,火狐浏览器默认显示断裂图片

在谷歌.IE浏览器中,如果图片路径加载失败,会显示一个默认的断裂图片,像这个样子 而在火狐浏览器中,则图片不会有任何占位,这样就会导致布局上的混乱,用户体验也不好,如何让火狐浏览器显示出断裂图片效果呢? 只需在样式文件css中加入这行代码就可以啦 @-moz-document url-prefix(http), url-prefix(file) { img:-moz-broken { -moz-force-broken-image-icon: 1; width:24px; height:24px

探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密

原文:探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密 下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求 下面是firefox: 下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问百度首页的情景. 在firefox的请求瀑布图里有个表现非常之明显:就是javascript文件下载完毕后,有一段时间是没有网络请求被处理的,这段时间过后http请求才会接着执行,这段空闲时间就是所谓的http请求被阻塞

[转]动态加载JS脚本

动态加载JS脚本 要实现动态加载JS脚本有4种方法: 1.直接document.write <script language="javascript"> document.write("<script src='test.js'><\/script>"); </script> 2.动态改变已有script的src属性 <script src='' id="s1"></script&