# LuaProUtil **Repository Path**: PXY2333/lua-pro-util ## Basic Information - **Project Name**: LuaProUtil - **Description**: 一个基于XLua和Addressables的辅助工具,使用前请下载Addressables依赖 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-25 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
--- ## ⚙️ 依赖安装 使用 LuaProUtil 前需要安装以下依赖: ### 1. Addressables(必须) 1. 打开 Unity 菜单 `Window > Package Manager` 2. 点击左上角 `+` 按钮,选择 `Add package by name...` 3. 输入 `com.unity.addressables`,点击 Install 4. 安装完成后,打开 `Window > Asset Management > Addressables > Groups` 初始化 Addressables ### 2. XLua(必须) 确保项目中已导入 XLua 插件(本项目已包含在 `Assets/XLua/`) --- ## ✨ 功能特性 ### 🐲 LuaMgr - Lua 环境管理器 - **单例模式**:继承自 `BaseMgr`,全局唯一实例 - **自定义加载器**:支持 Addressables 加载 Lua 脚本 - **全局库支持**:可配置 Global Head 脚本,自动执行初始化 - **生命周期管理**:安全的 Dispose 流程,避免回调泄露 ### 📦 ABMgr - Addressables 资源管理器 - **资源加载**:异步加载任意类型资源,支持 Key + Label 组合 - **场景管理**:支持 Single/Additive 场景加载、卸载 - **缓存机制**:自动缓存已加载资源,避免重复加载 - **内存管理**:提供 Release、ReleaseAll 等释放接口 ### 🎭 LuaBehaviour - Lua 脚本组件 - **拖拽绑定**:直接把 .lua 文件拖到 GameObject 上自动绑定 - **生命周期映射**:Awake/Start/Update/OnDestroy 等完整的 Unity 生命周期 - **开关控制**:可单独控制 Update/FixedUpdate/LateUpdate 是否执行 - **热重载**:支持运行时 Reload 脚本 ### ⚙️ 编辑器工具 - **Lua 脚本创建器**:`Assets > Create > Lua 脚本` 一键创建带模板的 Lua 文件 - **Lua 拖拽绑定**:Hierarchy 窗口拖拽 .lua 文件到 GameObject 自动添加 LuaBehaviour - **Lua 导入器**:自动识别 .lua 文件为 TextAsset --- ## 🚀 快速开始 ### 1. 初始化 Lua 环境 在场景中创建一个 GameObject,挂载 `LuaMgr` 组件。可选配置 `Global Library` 字段设置全局初始化脚本。 ### 2. 编写 Lua 脚本 右键 Project 窗口 `Create > Lua 脚本`,创建新脚本: ```lua -- Example.lua function Awake(go) print("Hello LuaProUtil! GameObject: " .. go.name) end function Start(go) print("Start called") end function Update(go) -- 每帧更新逻辑 end ``` ### 3. 绑定到 GameObject - **方式一**:把 `.lua` 文件直接拖拽到 Hierarchy 窗口的 GameObject 上 - **方式二**:手动添加 `LuaBehaviour` 组件,拖拽 Lua 文件到 `Lua File` 字段 ### 4. 加载资源 ```csharp // 在 C# 中加载资源 AbMgr.Instance.LoadAsync