{"id":30668238,"url":"https://github.com/gameframex/com.gameframex.unity.xlua","last_synced_at":"2025-11-01T11:03:56.095Z","repository":{"id":296419555,"uuid":"871562979","full_name":"GameFrameX/com.gameframex.unity.xlua","owner":"GameFrameX","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-30T15:51:32.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T22:17:02.340Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GameFrameX.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-12T10:03:27.000Z","updated_at":"2025-05-30T15:51:36.000Z","dependencies_parsed_at":"2025-05-30T22:24:42.963Z","dependency_job_id":"e437ea5e-280a-447b-a006-70c46e628c2b","html_url":"https://github.com/GameFrameX/com.gameframex.unity.xlua","commit_stats":null,"previous_names":["gameframex/com.gameframex.unity.xlua"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GameFrameX/com.gameframex.unity.xlua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.xlua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.xlua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.xlua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.xlua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameFrameX","download_url":"https://codeload.github.com/GameFrameX/com.gameframex.unity.xlua/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.xlua/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273056037,"owners_count":25037873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-31T23:46:54.884Z","updated_at":"2025-11-01T11:03:51.054Z","avatar_url":"https://github.com/GameFrameX.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿## HOMEPAGE\n\nGameFrameX 的 XLua 组件\n\n** XLua 组件 (XLua Component)** - 提供了执行 Lua 代码、加载 Lua 脚本、管理 Lua 环境等操作的接口。\n\n# 使用文档(文档编写于GPT4)\n\n# XLuaComponent 说明文档\n\n`XLuaComponent` 是一个用于集成 XLua 功能的组件，提供了执行 Lua 代码、加载 Lua 脚本、管理 Lua 环境等操作的接口。\n\n## 功能概述\n\n- 环境管理：初始化和清理 Lua 环境。\n- 执行脚本：运行 Lua 代码字符串或字节码。\n- 加载代码：加载 Lua 脚本并获取可执行的函数。\n- 扩展功能：添加自定义函数和类型别名，增强 Lua 的能力。\n- 自定义加载器：支持从不同来源加载 Lua 脚本。\n- 数据操作：创建和操作 Lua 表。\n- 内存管理：控制 Lua 的垃圾回收机制。\n\n## 方法说明\n\n### Awake\n\n初始化组件，获取 Lua 管理器实例并初始化 Lua 环境。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### DoString(string lua, string chunkName = \"chunk\", LuaTable env = null)\n\n执行 Lua 代码字符串。\n\n**参数**：\n\n- `lua`: Lua 代码字符串。\n- `chunkName`: 代码块名称，默认为 \"chunk\"。\n- `env`: Lua 环境表，默认为 null。\n\n**返回值**：\n执行结果数组。\n\n---\n\n### DoString(byte[] luaBytes, string chunkName = \"chunk\", LuaTable env = null)\n\n执行 Lua 字节数组。\n\n**参数**：\n\n- `luaBytes`: Lua 字节数组。\n- `chunkName`: 代码块名称，默认为 \"chunk\"。\n- `env`: Lua 环境表，默认为 null。\n\n**返回值**：\n执行结果数组。\n\n---\n\n### LoadString(string lua, string chunkName = \"chunk\", LuaTable env = null)\n\n加载 Lua 代码字符串。\n\n**参数**：\n\n- `lua`: Lua 代码字符串。\n- `chunkName`: 代码块名称，默认为 \"chunk\"。\n- `env`: Lua 环境表，默认为 null。\n\n**返回值**：\n加载的 Lua 函数。\n\n---\n\n### LoadString\u003cT\u003e(string lua, string chunkName = \"chunk\", LuaTable env = null)\n\n加载 Lua 代码字符串并返回指定类型。\n\n**参数**：\n\n- `lua`: Lua 代码字符串。\n- `chunkName`: 代码块名称，默认为 \"chunk\"。\n- `env`: Lua 环境表，默认为 null。\n\n**返回值**：\n加载的 Lua 函数，类型为 T。\n\n---\n\n### AddBuildIn(string buildInName, lua_CSFunction init)\n\n添加内置函数。\n\n**参数**：\n\n- `buildInName`: 内置函数名称。\n- `init`: 初始化函数。\n\n**返回值**：\n无\n\n---\n\n### AddLoader(LuaEnv.CustomLoader loader)\n\n添加自定义加载器。\n\n**参数**：\n\n- `loader`: 自定义加载器。\n\n**返回值**：\n无\n\n---\n\n### NewTable()\n\n创建新的 Lua 表。\n\n**参数**：\n无\n\n**返回值**：\n新的 Lua 表。\n\n---\n\n### Dispose()\n\n释放 Lua 环境。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### GetGlobal()\n\n获取全局 Lua 表。\n\n**参数**：\n无\n\n**返回值**：\n全局 Lua 表。\n\n---\n\n### Tick()\n\n进行一次 Lua 垃圾回收。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### Alias(Type type, string alias)\n\n为指定类型添加别名。\n\n**参数**：\n\n- `type`: 指定类型。\n- `alias`: 类型别名。\n\n**返回值**：\n无\n\n---\n\n### GC()\n\n执行一次 Lua 垃圾回收。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### RestartGc()\n\n重新启动 Lua 垃圾回收。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### FullGc()\n\n进行一次完整 Lua 垃圾回收。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n---\n\n### GcStep(int data)\n\n执行 Lua 垃圾回收一步。\n\n**参数**：\n\n- `data`: 回收数据。\n\n**返回值**：\n无\n\n---\n\n### StopGc()\n\n停止 Lua 垃圾回收。\n\n**参数**：\n无\n\n**返回值**：\n无\n\n# 使用方式(任选其一)\n\n1. 直接在 `manifest.json` 的文件中的 `dependencies` 节点下添加以下内容\n   ```json\n      {\"com.gameframex.unity.xlua\": \"https://github.com/AlianBlank/com.gameframex.unity.xlua.git\"}\n    ```\n2. 在Unity 的`Packages Manager` 中使用`Git URL` 的方式添加库,地址为：https://github.com/AlianBlank/com.gameframex.unity.xlua.git\n\n3. 直接下载仓库放置到Unity 项目的`Packages` 目录下。会自动加载识别","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.xlua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.xlua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.xlua/lists"}