当前位置: 首页 > news >正文

LuaBridge3介绍和使用

文章目录

  • LuaBridge 3 完整介绍 + 快速上手使用
  • 一、核心介绍
    • 1. 是什么?
    • 2. 能做什么?
    • 3. 优势
  • 二、安装 / 集成
    • 1. 下载
    • 2. 只需做两件事
    • 3. 依赖
  • 三、最常用 4 大功能(直接复制跑)
    • 1. 初始化 Lua 环境
    • 2. C++ 调用 Lua 函数
      • Lua 脚本(test.lua)
      • C++ 调用
    • 3. Lua 调用 C++ 函数
    • 4. 把 C++ 类暴露给 Lua(最常用!)
      • Lua 使用
  • 四、高级常用功能
    • 1. C++ 访问 Lua Table
    • 2. Lua 访问 C++ 容器(vector/map)
    • 3. 类的静态属性/方法
    • 4. 多返回值
  • 五、编译命令(g++)
  • 六、LuaBridge 3 总结(超精简)

LuaBridge 3 完整介绍 + 快速上手使用

LuaBridge 3 是目前最轻量、最简单、无依赖C++ ↔ Lua 绑定库,专门用来在 C++ 里调用 Lua、或者在 Lua 里调用 C++ 函数/类,是游戏、插件系统、脚本化逻辑最常用的库。

我给你整理最实用、能直接复制跑的版本,不讲废话。


一、核心介绍

1. 是什么?

  • 纯头文件库(只需 1 个文件夹,无需编译)
  • 支持 C++11 及以上
  • 支持 Lua 5.1 / 5.2 / 5.3 / 5.4 / LuaJIT
  • 无第三方依赖
  • 性能极高、体积极小
  • 语法非常简洁,比 LuaBind、Sol2 更轻更快

2. 能做什么?

  • C++ 调用 Lua 函数
  • Lua 调用 C++ 函数
  • C++ 类暴露给 Lua(成员函数、成员变量、构造函数)
  • 共享数据:int/float/string/table/userdata 自动转换
  • 做游戏逻辑、热更新、插件系统、配置脚本

3. 优势

✅ 纯头文件
✅ 编译极快
✅ 语法自然
✅ 体积小(几十 KB)
✅ 稳定、无坑
✅ 游戏行业大量使用


二、安装 / 集成

1. 下载

https://github.com/kunitoki/LuaBridge3

2. 只需做两件事

  1. Source/LuaBridge/整个目录加入头文件路径
  2. 包含头文件:
#include"LuaBridge/LuaBridge.h"

3. 依赖

你必须自己集成 Lua 库(Lua 5.4 最常用)


三、最常用 4 大功能(直接复制跑)

1. 初始化 Lua 环境

#include<iostream>#include"LuaBridge/LuaBridge.h"intmain(){// 1. 创建Lua状态机lua_State*L=luaL_newstate();luaL_openlibs(L);// 打开Lua标准库// ========== 你的绑定代码写这里 ==========// 关闭lua_close(L);return0;}

2. C++ 调用 Lua 函数

Lua 脚本(test.lua)

functionadd(a,b)returna+bend

C++ 调用

// 加载Lua文件luaL_dofile(L,"test.lua");// 调用 Lua 函数 add(10, 20)autores=luabridge::getGlobal(L,"add")(10,20);intsum=res;// 自动转intstd::cout<<sum<<std::endl;// 输出 30

3. Lua 调用 C++ 函数

// 定义C++函数intcpp_add(inta,intb){returna+b;}// 绑定到Lua全局luabridge::getGlobalNamespace(L).addFunction("cpp_add",cpp_add);

然后 Lua 就能直接调用:

localres=cpp_add(100,200)print(res)-- 300

4. 把 C++ 类暴露给 Lua(最常用!)

// 一个C++类classPlayer{public:inthp;std::string name;Player(std::string n,inth):name(n),hp(h){}voidattack(){std::cout<<name<<" 攻击!\n";}};// 绑定到Lualuabridge::getGlobalNamespace(L).beginClass<Player>("Player").addConstructor<void(*)(std::string,int)>()// 构造函数.addData("hp",&Player::hp)// 成员变量.addData("name",&Player::name).addFunction("attack",&Player::attack)// 成员函数.endClass();

Lua 使用

localp=Player("小明",100)print(p.name,p.hp)p:attack()p.hp=80print(p.hp)

四、高级常用功能

1. C++ 访问 Lua Table

localcfg={speed=10,name="test"}
autotbl=luabridge::getGlobal(L,"cfg");intspeed=tbl["speed"];std::string name=tbl["name"];

2. Lua 访问 C++ 容器(vector/map)

LuaBridge 3 原生支持:

std::vector<int>vec={1,2,3};luabridge::push(L,vec);lua_setglobal(L,"vec");

Lua:

print(vec[1],vec[2],vec[3])

3. 类的静态属性/方法

.addStaticData("static_val",&MyClass::static_val).addStaticFunction("static_func",&MyClass::static_func)

4. 多返回值

C++:

luabridge::LuaReffunc(luabridge::newTable(L));func["x"]=100;func["y"]=200;returnfunc;

Lua 直接接收 table。


五、编译命令(g++)

g++-std=c++11 main.cpp-otest-llua-ldl

六、LuaBridge 3 总结(超精简)

  • 纯头文件、轻量、无依赖
  • C++ ↔ Lua 双向调用
  • 类、函数、变量、table、vector 全支持
  • 游戏/脚本/热更首选
  • 比 Sol2 轻,比 LuaBind 简单

如果你愿意,我可以直接给你:
可直接编译运行的完整 Demo 项目
LuaBridge + Lua 5.4 一键集成 CMake 模板
游戏里最常用的脚本框架

http://www.jsqmd.com/news/870721/

相关文章:

  • 键帽推荐|客制化|键芯造物「青岚秘符」抹茶绿渐变:百元内原创设计卷王,复购率80%的秘密找到了 - 小狐狸在吃饭
  • Windows微信QQ防撤回终极指南:如何永久保存被撤回的消息
  • 机器学习实战地形图:从问题定义到模型监控的端到端闭环
  • 如何永久保存你的微信聊天记录:WeChatMsg完整解决方案指南
  • 2026年5月最新天水麦积黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • 2026年5月最新邢台威县黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • 3Dmigoto完整指南:修复游戏立体视觉效果的终极工具
  • 手把手拆解LaMDA的‘外挂大脑’:1370亿参数模型如何学会‘查资料’来避免胡说八道
  • 回归模型评估实战指南:从指标选择到业务决策
  • 手机拍证件照怎么拍好看?2026手机拍摄证件照技巧方法全面盘点 - 软件小管家
  • 2026年5月最新咸阳彬县黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • Title 文章标题
  • 2026 年铸铝门别墅大门甄选指南|铸铝门・装甲门・铜门・锌合金门・自建房大门・非标入户门终身质保 - 企业品牌优选推荐官
  • 解锁泉盛UV-K5/K6对讲机隐藏潜能:LOSEHU固件5大核心功能深度解析
  • 2026别墅铸铝大门厂家哪家好?铸铝门、装甲门源头工厂推荐及铸铝大门十大品牌权威盘点 - 企业品牌优选推荐官
  • 2026固态电池冬季续航实测:零下20℃仍跑600公里?
  • 2026年5月最新新疆福海黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • DownKyi完整教程:如何快速下载B站8K超高清视频的终极指南
  • 2026年5月最新咸阳淳化黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • 2026脑机接口:技术突破与产业爆发
  • 2026年5月最新松原乾安黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • OpCore Simplify:黑苹果OpenCore EFI自动化配置的智能解决方案
  • 用正点原子Nano开发板,5分钟搞定RT-Thread Nano的MDK5工程配置(附串口调试技巧)
  • 诸城市冻干机厂家技术解析:选型要点与应用场景全览 - 奔跑123
  • 别再乱用电容了!从稳压芯片电路入手,搞懂电解电容和贴片电容到底该怎么搭配
  • 2026年5月最新咸阳泾阳黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐 - 金诚回收
  • 终极Python SECS/GEM协议实现:5分钟构建半导体设备通信系统
  • 合肥同城奢侈品处置,闲置名包高效变现实用技巧 - 李宏哲1
  • 如何用Happy Island Designer免费打造你的梦幻岛屿:终极完整指南
  • 从手机拍照到视频播放:一文看懂YUV(NV12/YUV444)格式为什么无处不在