{"id":18212230,"url":"https://github.com/gameframex/com.gameframex.unity.tencent.xlua","last_synced_at":"2025-12-24T04:54:41.211Z","repository":{"id":210375263,"uuid":"726410176","full_name":"GameFrameX/com.gameframex.unity.tencent.xlua","owner":"GameFrameX","description":"从XLua二次分发而来","archived":false,"fork":false,"pushed_at":"2025-05-30T15:58:23.000Z","size":3834,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-30T22:22:07.388Z","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":null,"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":null,"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":"2023-12-02T10:10:20.000Z","updated_at":"2025-05-30T15:58:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"c561ba9e-7783-41f9-ba72-1eb597ce314b","html_url":"https://github.com/GameFrameX/com.gameframex.unity.tencent.xlua","commit_stats":null,"previous_names":["alianblank/com.tencent.xlua","gameframex/com.gameframex.unity.tencent.xlua"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/GameFrameX/com.gameframex.unity.tencent.xlua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.tencent.xlua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.tencent.xlua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.tencent.xlua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.tencent.xlua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameFrameX","download_url":"https://codeload.github.com/GameFrameX/com.gameframex.unity.tencent.xlua/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.tencent.xlua/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261249800,"owners_count":23130495,"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","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":"2024-11-03T15:40:25.975Z","updated_at":"2025-10-16T09:13:26.635Z","avatar_url":"https://github.com/GameFrameX.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 基于`com.tencent.xlua` 的二次修改\r\n\r\n该库主要服务于 `https://github.com/GameFrameX/GameFrameX` 作为子库使用。\r\n\r\n\r\n# 使用方式(三种方式)\r\n1. 直接在 `manifest.json` 文件中添加以下内容\r\n   ```json\r\n      {\"com.gameframex.unity.tencent.xlua\": \"https://github.com/gameframex/com.gameframex.unity.tencent.xlua.git\"}\r\n    ```\r\n2. 在Unity 的`Packages Manager` 中使用`Git URL` 的方式添加库,地址为：https://github.com/gameframex/com.gameframex.unity.tencent.xlua.git\r\n\r\n3. 直接下载仓库放置到Unity 项目的`Packages` 目录下。会自动加载识别\r\n\r\n# 改动功能\r\n\r\n1. 移除开发机器的统计代码\r\n\r\n------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n![](Assets/XLua/Doc/xLua.png)\r\n\r\n[![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Tencent/xLua/blob/master/LICENSE.TXT)\r\n[![release](https://img.shields.io/badge/release-v2.1.15-blue.svg)](https://github.com/Tencent/xLua/releases)\r\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/Tencent/xLua/pulls)\r\n[![Build status](https://travis-ci.org/Tencent/xLua.svg?branch=master)](https://travis-ci.org/Tencent/xLua)\r\n\r\n[(English Documents Available)](README_EN.md)\r\n\r\n## C#下Lua编程支持\r\n\r\nxLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力，借助xLua，这些Lua代码可以方便的和C#相互调用。\r\n\r\n## xLua的突破\r\n\r\nxLua在功能、性能、易用性都有不少突破，这几方面分别最具代表性的是：\r\n\r\n* 可以运行时把C#实现（方法，操作符，属性，事件等等）替换成lua实现；\r\n* 出色的GC优化，自定义struct，枚举在Lua和C#间传递无C# gc alloc；\r\n* 编辑器下无需生成代码，开发更轻量；\r\n\r\n更详细的特性、平台支持介绍请看[这里](Assets/XLua/Doc/features.md)。\r\n\r\n## 安装\r\n\r\n打开zip包，你会看到一个Assets目录，这目录就对应Unity工程的Assets目录，保持这目录结构放到你的Unity工程。\r\n\r\n如果希望安装到其它目录，请看[FAQ](Assets/XLua/Doc/faq.md)相关介绍。\r\n\r\n## 文档\r\n\r\n* [常见问题解答](Assets/XLua/Doc/faq.md)：常见问题都总结在这里，初使用大多数问题都可以在这里找到答案。\r\n* (必看)[XLua教程](Assets/XLua/Doc/XLua教程.md)：教程，其配套代码[这里](Assets/XLua/Tutorial/)。\r\n* (必看)[XLua的配置](Assets/XLua/Doc/configure.md)：介绍如何配置xLua。\r\n* [热补丁操作指南](Assets/XLua/Doc/hotfix.md)：介绍如何使用热补丁特性。\r\n* [XLua增加删除第三方lua库](Assets/XLua/Doc/XLua增加删除第三方lua库.md)：如何增删第三方lua扩展库。\r\n* [XLua API](Assets/XLua/Doc/XLua_API.md)：API文档。\r\n* [生成引擎二次开发指南](Assets/XLua/Doc/custom_generate.md)：介绍如何做生成引擎的二次开发。\r\n\r\n## 快速入门\r\n\r\n一个完整的例子仅需3行代码：\r\n\r\n安装好xLua，建一个MonoBehaviour拖到场景，在Start加入如下代码：\r\n\r\n```csharp\r\nXLua.LuaEnv luaenv = new XLua.LuaEnv();\r\nluaenv.DoString(\"CS.UnityEngine.Debug.Log('hello world')\");\r\nluaenv.Dispose();\r\n```\r\n\r\n1、DoString参数为string，可输入任意合法的Lua代码，本示例在lua里调用C#的UnityEngine.Debug.Log打印了个日志。\r\n\r\n2、一个LuaEnv实例对应Lua虚拟机，出于开销的考虑，建议全局唯一。\r\n\r\nC#主动调用lua也很简单，比如要调用lua的系统函数，推荐方式是：\r\n\r\n* 声明\r\n\r\n```csharp\r\n[XLua.CSharpCallLua]\r\npublic delegate double LuaMax(double a, double b);\r\n```\r\n\r\n* 绑定\r\n\r\n```csharp\r\nvar max = luaenv.Global.GetInPath\u003cLuaMax\u003e(\"math.max\");\r\n```\r\n\r\n* 调用\r\n\r\n```csharp\r\nDebug.Log(\"max:\" + max(32, 12));\r\n```\r\n\r\n建议绑定一次，重复使用。生成了代码的话，调用max是不产生gc alloc的。\r\n\r\n## 热补丁\r\n\r\n* 侵入性小，老项目原有代码不做任何调整就可使用。\r\n* 运行时影响小，不打补丁基本和原有程序一样。\r\n* 出问题了可以用Lua来打补丁，这时才会走到lua代码逻辑；\r\n\r\n[这里](Assets/XLua/Doc/hotfix.md)是使用指南。\r\n\r\n## 更多示例\r\n\r\n* [01_Helloworld](Assets/XLua/Examples/01_Helloworld/): 快速入门的例子。\r\n* [02_U3DScripting](Assets/XLua/Examples/02_U3DScripting/): 展示怎么用lua来写MonoBehaviour。\r\n* [03_UIEvent](Assets/XLua/Examples/03_UIEvent/): 展示怎么用lua来写UI逻辑。\r\n* [04_LuaObjectOrented](Assets/XLua/Examples/04_LuaObjectOrented/): 展示lua面向对象和C#的配合。\r\n* [05_NoGc](Assets/XLua/Examples/05_NoGc/): 展示怎么去避免值类型的GC。\r\n* [06_Coroutine](Assets/XLua/Examples/06_Coroutine/): 展示lua协程怎么和Unity协程相配合。\r\n* [07_AsyncTest](Assets/XLua/Examples/07_AsyncTest/): 展示怎么用lua协程来把异步逻辑同步化。\r\n* [08_Hotfix](Assets/XLua/Examples/08_Hotfix/): 热补丁的示例（需要开启热补丁特性，如何开启请看[指南](Assets/XLua/Doc/hotfix.md)）。\r\n* [09_GenericMethod](Assets/XLua/Examples/09_GenericMethod/): 泛化函数支持的演示。\r\n* [10_SignatureLoader](Assets/XLua/Examples/10_SignatureLoader/): 展示如何读取经数字签名的lua脚本，参见[数字签名](Assets/XLua/Doc/signature.md)的文档介绍。\r\n* [11_RawObject](Assets/XLua/Examples/11_RawObject/): 当C#参数是object时，如何把一个lua number指定以boxing后的int传递过去。\r\n* [12_ReImplementInLua](Assets/XLua/Examples/12_ReImplementInLua/): 展示如何将复杂值类型改为lua实现。\r\n\r\n## 技术支持\r\n\r\n一群：612705778 (已满)\r\n\r\n二群：703073338 (已满)\r\n\r\n三群：811246782\r\n\r\n入群的问题：有问题该先从哪找答案\r\n\r\n回答：FAQ\r\n\r\n平时也要谨记这答案，90%以上问题都可以在[FAQ](Assets/XLua/Doc/faq.md)里头找到答案。这些问题就别在群刷屏了。\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.tencent.xlua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.tencent.xlua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.tencent.xlua/lists"}