c++ - 如何使用 Lua 从表中的表中获取值?

标签 c++ c lua

我正在为我正在工作的游戏引擎编写 Material 系统,其中 Lua 脚本基本上用作 Material 的配置文件。

我将值存储在表中,但对于 vector 值(vec2vec3 等),我在主表中嵌入了一个表来保存多个值,像这样:

material = {
    color = {0.2, 0.3, 1}
}

我想获取color的各个值,这是我尝试获取第一个值的方法:

lua_getglobal(L, "material");
if (!lua_istable(L, -1)) {return;};

lua_pushstring(L, "color");
lua_gettable(L, -2);
if (lua_istable(L, -1)) {
    lua_rawgeti(L, -1, 0);
    printf("%f\n", lua_tonumber(L, -1));
}
lua_pop(L, 1);

但它只会打印 0.0,无论 color 表中的第一个值如何。我做错了什么?

最佳答案

第一个索引应该是 1 而不是 0

lua_rawgeti(L, -1, 1);

关于c++ - 如何使用 Lua 从表中的表中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64494392/

相关文章:

c++ - 如何从 Windows Socket (C++) 获取连接主机的 IP 地址?

我的代码中的计算不正确

C:在一个数组中切换两个结构

lua - FireBase API 是否有未缩小的 JavaScript 版本?

shell - Lua:寻找开源图形解释器/控制台/交互式shell

python - 脚本语言选择

c++ - 在没有事件 Hook 的情况下通信应用程序

c++ - 这两个语句有什么区别

c++ - 在复制构造函数中重新绑定(bind)函数指针

c - 如何在c中获取lua参数?