Lua:如何从另一个 class 获取 class 变量?

Lua: How can i reach a class variable from another class?

我在文件 'tracking.lua' 中有这个对象,它是:

local trackingObject = Object3D(scene:getObjectByName("Tracking_Object"))

在文件 'MotionDetection.lua' 中,我有这个:

for i,v in ipairs(zone) do
    zoneDetection[i] = chaneledHistory:testRegion2D(v, moveRatio);
    if zoneDetection[i] then 
        zoneDet[i] = 1
        LOG('zone '..i..' detected')
    end
end

在'MotionDetection.lua'中,如果i为1,我想将trackingObject在'tracking.lua'中的状态设置为true

trackingObject:setVisible(true)

如果i为2,我想将trackingObject在'tracking.lua'中的状态设置为false:

trackingObject:setVisible(false)

如何从 'MotionDetection.lua' 到达 'tracking.lua' 的 trackingObject

由于 trackingObjecttracking.lua (local trackingObject = Object3D...) 中设置为本地变量,因此您无法从 MotionDetection.lua 访问该变量。您确实有几个选项可以使该对象可用:您可以切换到使用 global variable in this case, or return a table/object as the results of tracking.lua, which will allow other modules that load tracking.lua (for example, using require 'tracking') get access to those values (see Lua manual for require).