lua - 我如何从 Defold 中的收集代理获取输入

标签 lua defold

我已经加载了一个集合代理,但是即使我将输入焦点放在加载程序对象上,我也没有收到代理内脚本的输入。我也没有收到有关加载程序对象的输入。

这是加载代理的脚本:

function init(self)
    msg.post(".", "acquire_input_focus")
    msg.post("/game#level1", "load")
end

function on_message(self, message_id, message, sender)
    if message_id == hash("proxy_loaded") then
        msg.post(sender, "enable")
    end
end

这是代理中对象的脚本:

function init(self)
    msg.post(".", "acquire_input_focus")
end

最佳答案

这是一个很常见的陷阱。输入和代理的工作方式如下:每个代理加载的集合都有自己的输入堆栈。输入通过代理组件从主集合输入堆栈路由到集合中的对象。这意味着加载集合中的游戏对象获取输入焦点是不够的,持有代理组件的游戏对象也需要获取输入焦点。查看Input documentation了解详情。

关于lua - 我如何从 Defold 中的收集代理获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742612/

相关文章:

Lua/使用内联函数代码初始化表,但分配值而不是函数

javascript - 简单的 Node.js 故障排除 - 从 app.get() 接收 404

lua - 我可以在评估器模式下运行 Lua 解释器吗?

database - 在 Lua 中更新数据库版本

lua - 如何创建仅匹配特定字符集的模式?

Lua - 尝试索引本地 'lvlObj'(用户数据值)

opengl - 如何在片段着色器中平铺部分纹理