美文网首页
使用Xlua加载目录下的.lua文件

使用Xlua加载目录下的.lua文件

作者: ASnake | 来源:发表于2018-03-30 19:20 被阅读0次

1.Scripts name :LuaController

使用Fill.ReadAllBytes来获取指定文件夹下的文件

public virtual byte[] Load(ref string fillName)

    {

        string filePath = SnakeUtils.Root + fillName;            // lua文件的实际路径

        fillName = fillName.Replace('.', '/');    // 返给lua调试器的路径,不用调试lua的就不用管这个了

        try

        {

            // File.ReadAllBytes返回值可能会带有BOM(0xEF,0xBB,0xBF),这会导致脚本加载出错(<\239>)

            byte[] script = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(filePath));

            return script;

        }

        catch

        {

            return null;

        }

    }

Xlua解释器  LuaEnv(全局只有一个,在这里我使用了实例化一个静态实例的方式)   想要在文件中可以require到东西

需要向Xlua解释器中添加自定义loader 当我们在lua文件中require文件时就会使用我们自定义的loader

然后当我们在lua中require的时候就会在我们这个路径加载文件(这个loader可以添加多个,个人感觉一般项目只需要一个就行)

下面是LuaController的实现

static LuaEnv luaenv;

LoaderFile lf;

public LuaEnv Luaenv {

get { if (luaenv == null)

{

     luaenv = new LuaEnv();

     lf = new LoaderFile();

    luaenv.AddLoader(lf.LoadLua);

}

    return luaenv;

}

}

public static LuaController Instance

{

get { if (instance == null)

{

    GameObject g = new GameObject("LuaController");

     instance = g.AddComponent(); g.AddComponent();

  }

    return instance;

}  }

    static LuaController instance;

private void Awake()

    {

        Luaenv.DoString("require 'init'");

    }

相关文章

  • 使用Xlua加载目录下的.lua文件

    1.Scripts name :LuaController 使用Fill.ReadAllBytes来获取指定文件夹...

  • xLua教程

    xLua教程 Lua文件加载 执行字符串最基本是直接用LuaEnv.DoString执行一个字符串,当然,字符串得...

  • Unity xlua 从lua传递byte[]数据到C#

    最近在使用xlua protobuf开发项目。 在lua中是没有byte[]类型的,lua里的byte[]与str...

  • unity xlua入门

    xlua脚本 myxlua.lua.txt print("my xlua file");num1=10str1='...

  • C API-加载文件

    文件加载 c加载lua文件需要用到两个函数宏 代码示例:load_test.lua main.cc

  • 云风大神pbc import使用的一个小坑

    最近项目使用unity+Xlua,通讯协议这一块用的是谷歌的protobuf,所以要lua层使用协议,就使用了pb...

  • Json4xLua

    xLua目前没有集成json相关的相关使用,需要加入第三方的lua脚本来支持json的使用 使用的脚本是从gith...

  • Lua文件动态加载

    解决客户端修改lua文件后需要重新进入游戏查看效果的问题。 实现方式是,判定修改的lua文件是否被加载,如果被加载...

  • Lua扩展

    lua作为配置文件使用 使用LUA API分析这个文件,并获取width和height table操作lua 5....

  • Lua搜索路径

    Lua require可以加载一个 lua文件进来 搜索路径默认是 lua的安装目录可以打印package.pat...

网友评论

      本文标题:使用Xlua加载目录下的.lua文件

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