Lua 如何从Defold中的集合代理获取输入

Lua 如何从Defold中的集合代理获取输入,lua,defold,Lua,Defold,我已经加载了一个集合代理,但是我没有收到关于代理内脚本的任何输入,即使我的输入焦点是loader对象。我也没有收到加载程序对象的任何输入 这是加载代理的脚本: function init(self) msg.post(".", "acquire_input_focus") msg.post("/game#level1", "load") end function on_message(self, message_id, message, sender) if messa

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

这是加载代理的脚本:

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
这是代理中对象上的脚本:

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

这是一个相当常见的陷阱。输入和代理的工作方式如下:每个代理加载的集合都有自己的输入堆栈。输入通过代理组件从主集合输入堆栈路由到集合中的对象。这意味着加载的集合中的游戏对象获取输入焦点是不够的,持有代理组件的游戏对象也需要获取输入焦点。有关详细信息,请参阅