0

我开始从 Facebook 试验 ARStudio,但我不知道如何从脚本中设置对象的位置。我尝试了类似下面的方法,但似乎object.transform.x(or y, z)采用“ScalarSignal”而不是数值。如何在 ARStudio 中设置对象的位置?

class Vector3{
    constructor(xPos = 0, yPos = 0, zPos = 0){
        var x = xPos;
        var y = yPos;
        var z = zPos;
    }
}

const FaceTracking = require("FaceTracking");
const Diagnostics = require("Diagnostics");
const Scene = require("Scene");

var sphere = Scene.root.child("sphere");
var spherePosition = new Vector3()

var mouthCenter = FaceTracking.face(0).mouth.center;
var mouthCenterPosition = new Vector3();

mouthCenter.x.monitor().subscribe(function(e){
    if(e.newValue){
        mouthCenterPosition.x = mouthCenter.x.lastValue;
    }
});

mouthCenter.y.monitor().subscribe(function(e){
    if(e.newValue){
        mouthCenterPosition.y = mouthCenter.y.lastValue;
    }
});

mouthCenter.z.monitor().subscribe(function(e){
    if(e.newValue){
        mouthCenterPosition.z = mouthCenter.z.lastValue;
    }
    // Diagnostics.log(mouthCenterPosition);
    SetSpherePosition(mouthCenterPosition);
});

function SetSpherePosition(pos){
    //This part is causing error...
    sphere.transform.x = pos.x;
    sphere.transform.y = pos.y;
    sphere.transform.z = pos.z;
}
4

1 回答 1

1

这可能会有所帮助:https ://developers.facebook.com/docs/ar-studio/reference/reactive_module/transformsignal_class

此外,尝试类似

sphere.transform.position = mouthCenterPosition; 

我认为球体对象很可能包含这个变换模块,然后它有一个可以修改的位置属性。我相信像这样设置一个相等是如何在 React 中“绑定”。我是 React 的新手,对此答案的任何其他帮助也会受到我的赞赏!

于 2018-08-14T22:43:39.130 回答