对于手部跟踪器,其补丁程序具有信息X,Y和Z,并且在跟踪手部时会出现值。我如何通过脚本获得这些价值?可能吗?没有任何手部跟踪脚本示例。
到目前为止,我可以通过以下方法来确定是否检测到手,但仍不确定如何获得位置:
//im assuming this is the correct module
const HandTracking = require('HandTracking');
const Scene = require('Scene');
//this is to check if a hand is detected
HandTracking.count.monitor().subscribe(function(e){
if(e.newValue){
Debug.log("hand found");
}
})
更新
所以我假设它有这样的东西:
var thehand = HandTracking.hand(0);
var posx = thehand.cameraTransform.x.lastValue;
Debug.log(posx);
但是不赞成这种方式吗?需要使用subscribeWithSnapshot,但我不确定如何实现。
它还必须是动态的(?),因为该值随每个移动而变化。
答案 0 :(得分:1)
您处在正确的轨道上,您所需要的只是:
var posx = thehand.cameraTransform.x;
这将为您指示手的x位置。要调试此值,您可以使用:
Diagnostics.watch("hand x",posx);
信号是随时间变化的值,可以绑定到另一个对象属性,例如:
mySceneObject.transform.x = thehand.cameraTransform.x;
这会将手的x位置信号绑定到对象的x位置,以便对象随手移动。
在此处详细了解信号:https://developers.facebook.com/docs/ar-studio/scripting/reactive
它们是一个非常强大的工具,并且是在AR Studio中编写脚本的基本知识。
希望这会有所帮助!