我正在使用Atom获取TTS mod脚本。在我的游戏中,我有一个带有GUID ed743f
的袋子,我有一个名为#include Shard/shard
的全局文件。在该文件中,我的#include diceroller
文件中有diceRoller.ttslua
,我有以下代码:
diceRoller = getObjectFromGUID("ed743f")
print(diceRoller, 'roller')
function onCollisionEnter()
print('dice entered')
end
打印有效,因此正确包含了文件,但是如何将onCollisionEnter函数与正确的对象(diceRoller)“连接”?因为现在当我把骰子放进袋子时,什么也没发生。
摘自文档:
onCollisionEnter(...)
[当对象开始与对象碰撞时调用此函数打开功能的对象。在全局中不起作用。
该功能打开表示它是在该对象的对象脚本中实现的。
对象成员:
[
script_code
对象上的Lua脚本。Object Script附加到游戏中对象的脚本,保存为其中的一部分。这类似于其他任何属性,例如其规模或色彩。一些功能要求对象引用,以便尝试在其上运行功能。在这些情况下,全局(确切地说是此处写的)也是有效的对象引用。
根据我在这里所读的内容,我说你需要在对象脚本中实现该功能。
请再次阅读手册。
@ Piglet是正确的,它说onCollisionEnter(...)在Global中不起作用。我所做的是右键单击Tabletop Simulator中的对象(包),然后单击“脚本编辑器”。这将打开该对象的脚本文件。然后在该文件中,我创建了一个需求参考require("somefolder/somefile")
。路径的根是:
C:\ Users ***** \ Documents \ Tabletop Simulator
所以现在我可以使用onCollisionEnter(...),因为脚本不是全局的,而是对象绑定的。