com.gameframex.unity.xlua/README.md

4.0 KiB
Raw Permalink Blame History

HOMEPAGE

GameFrameX 的 XLua 组件

** XLua 组件 (XLua Component)** - 提供了执行 Lua 代码、加载 Lua 脚本、管理 Lua 环境等操作的接口。

使用文档(文档编写于GPT4)

XLuaComponent 说明文档

XLuaComponent 是一个用于集成 XLua 功能的组件,提供了执行 Lua 代码、加载 Lua 脚本、管理 Lua 环境等操作的接口。

功能概述

  • 环境管理:初始化和清理 Lua 环境。
  • 执行脚本:运行 Lua 代码字符串或字节码。
  • 加载代码:加载 Lua 脚本并获取可执行的函数。
  • 扩展功能:添加自定义函数和类型别名,增强 Lua 的能力。
  • 自定义加载器:支持从不同来源加载 Lua 脚本。
  • 数据操作:创建和操作 Lua 表。
  • 内存管理:控制 Lua 的垃圾回收机制。

方法说明

Awake

初始化组件,获取 Lua 管理器实例并初始化 Lua 环境。

参数

返回值


DoString(string lua, string chunkName = "chunk", LuaTable env = null)

执行 Lua 代码字符串。

参数

  • lua: Lua 代码字符串。
  • chunkName: 代码块名称,默认为 "chunk"。
  • env: Lua 环境表,默认为 null。

返回值 执行结果数组。


DoString(byte[] luaBytes, string chunkName = "chunk", LuaTable env = null)

执行 Lua 字节数组。

参数

  • luaBytes: Lua 字节数组。
  • chunkName: 代码块名称,默认为 "chunk"。
  • env: Lua 环境表,默认为 null。

返回值 执行结果数组。


LoadString(string lua, string chunkName = "chunk", LuaTable env = null)

加载 Lua 代码字符串。

参数

  • lua: Lua 代码字符串。
  • chunkName: 代码块名称,默认为 "chunk"。
  • env: Lua 环境表,默认为 null。

返回值 加载的 Lua 函数。


LoadString(string lua, string chunkName = "chunk", LuaTable env = null)

加载 Lua 代码字符串并返回指定类型。

参数

  • lua: Lua 代码字符串。
  • chunkName: 代码块名称,默认为 "chunk"。
  • env: Lua 环境表,默认为 null。

返回值 加载的 Lua 函数,类型为 T。


AddBuildIn(string buildInName, lua_CSFunction init)

添加内置函数。

参数

  • buildInName: 内置函数名称。
  • init: 初始化函数。

返回值


AddLoader(LuaEnv.CustomLoader loader)

添加自定义加载器。

参数

  • loader: 自定义加载器。

返回值


NewTable()

创建新的 Lua 表。

参数

返回值 新的 Lua 表。


Dispose()

释放 Lua 环境。

参数

返回值


GetGlobal()

获取全局 Lua 表。

参数

返回值 全局 Lua 表。


Tick()

进行一次 Lua 垃圾回收。

参数

返回值


Alias(Type type, string alias)

为指定类型添加别名。

参数

  • type: 指定类型。
  • alias: 类型别名。

返回值


GC()

执行一次 Lua 垃圾回收。

参数

返回值


RestartGc()

重新启动 Lua 垃圾回收。

参数

返回值


FullGc()

进行一次完整 Lua 垃圾回收。

参数

返回值


GcStep(int data)

执行 Lua 垃圾回收一步。

参数

  • data: 回收数据。

返回值


StopGc()

停止 Lua 垃圾回收。

参数

返回值

使用方式(任选其一)

  1. 直接在 manifest.json 的文件中的 dependencies 节点下添加以下内容

       {"com.gameframex.unity.xlua": "https://github.com/AlianBlank/com.gameframex.unity.xlua.git"}
    
  2. 在Unity 的Packages Manager 中使用Git URL 的方式添加库,地址为:https://github.com/AlianBlank/com.gameframex.unity.xlua.git

  3. 直接下载仓库放置到Unity 项目的Packages 目录下。会自动加载识别