美文网首页
2、XLua中的C#API

2、XLua中的C#API

作者: GameObjectLgy | 来源:发表于2020-10-15 00:24 被阅读0次
    LuaEnv类
    • object[] DoString(string chunk, string chunkName = "chuck", LuaTable env = null)
      执行一个代码块。

    • T LoadString(string chunk, string chunkName = "chunk", LuaTable env = null)
      加载一个代码块,但不执行,只返回类型可以指定为一个delegate或者一个LuaFunction

    • LuaTable Global;
      代表lua全局环境的LuaTable

    • void Tick()
      清除Lua的未手动释放的LuaBase对象(比如:LuaTable, LuaFunction),以及其它一些事情。
      需要定期调用,比如在MonoBehaviour的Update中调用。

    • void AddLoader(CustomLoader loader)
      增加一个自定义loader

    • void Dispose()
      Dispose该LuaEnv

    LuaTable类
    • T Get(string key)
      获取在key下,类型为T的value,如果不存在或者类型不匹配,返回null;

    • T GetInPath(string path)
      和Get的区别是,这个函数会识别path里头的“.”,比如var i = tbl.GetInPath<int>(“a.b.c”)相当于在lua里头执行i = tbl.a.b.c,避免仅为了获取中间变量而多次调用Get,执行效率更高。

    • void SetInPath(string path, T val)
      和GetInPaht<T>对应的setter;

    • void Get<TKey, TValue>(TKey key, out TValue value)
      上面的API的Key都只能是string,而这个API无此限制;

    • void Set<TKey, TValue>(TKey key, TValue value)
      对应Get<TKey, TValue>的setter;

    • T Cast()
      把该table转成一个T指明的类型,可以是一个加了CSharpCallLua声明的interface,一个有默认构造函数的class或者struct,一个Dictionary,List等等。

    • void SetMetaTable(LuaTable metaTable)
      设置metaTable为table的metatable

    LuaFunction类
    • object[] Call(params object[] args)
      以可变参数调用Lua函数,并返回该调用的返回值。

    • object[] Call(object[] args, Type[] returnTypes)
      调用Lua函数,并指明返回参数的类型,系统会自动按指定类型进行转换。

    • void SetEnv(LuaTable env)
      相当于lua的setfenv函数。

    相关文章

      网友评论

          本文标题:2、XLua中的C#API

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