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
?
由于 trackingObject
在 tracking.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).
我在文件 '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
?
由于 trackingObject
在 tracking.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).