ios - 用于 iOS 的 Lua 脚本

标签 ios swift lua

我正在使用适用于 iOS 平台的 SceneKit 开发一个游戏项目,并希望使用 Lua 脚本通过 Lua 脚本中的命令加载资源(3D 文件、音乐),以便设计师将在 Lua 中编写命令来加载他的文件场景中的特定点,还可以调整其属性以及与其他节点的交互等。并且将编写代码来执行命令。我知道我必须包含 Lua API 并编写桥接文件来集成 API,但不确定如何实现我提到的内容。有人可以建议任何此类示例或任何想法吗?

最佳答案

我过去曾研究过这样做。我从源代码构建 Lua。

  1. 为此,您需要创建一个桥接头。如果你创建一个新的 C 头文件,Xcode 应该询问你是否要创建一个桥接头文件。 仅供引用,当它制作这个文件时,它还会设置 swift 编译器标志“Objective-C Bridging Header”以指向正确的文件。
    1. 然后您需要将 Lua 源代码复制到项目中并进行构建。此时,您还没有将 Lua 代码暴露给 swift。
    2. 将适当的 Lua 头文件包含到桥接头中。所以把这样的东西放进去:#include "lua.h"

在这一点上,你会想要编写一些函数来桥接他们使用的一些 Lua 宏。这些与 swift 不兼容,因此您需要重写它们。

有关引用,请查看开发人员指南 here .

关于ios - 用于 iOS 的 Lua 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156956/

相关文章:

ios - 屏幕外时指向 UIlabel 的强指针未指向正确的标签

swift - 使用 registerForLocalNotifications 时 Unresolved external 问题

lua - 如何将数字转换为有符号/无符号 16/32 位?

c++ - 手动添加 IDE 对 Lua (CryEngine) 的支持

lua - 如何在 Lua 中测试 -1.#IND(不确定)?

ios - 可扩展的UICollectionViewCell重新定位问题

ios - 我对 Objective-C 的 Pocket API 做错了什么导致存档命令失败?

ios - 如何在 flutter 中降级包?

ios - 将节点添加到子节点时不会调用 layoutSpecThatFits

swift - 有没有办法在 watchOS 中使用 `useProtocolCachePolicy`?