我参考了模板代码中的AR控制模型朝向案例,但是写的这段代码怎么都朝向不成功。
arrow是一个箭头的gltf,targetObj是目标元素。
handleTick () {
//1 获取模型
const arrow = this.scene.getElementById('arrow').getComponent(xrSystem.Transform);
//2 计算朝向向量
let position = this.targetObj.getData('position')
let ArrowFacing = this.xrSystem.Vector3.createFromNumber(position[0], position[1], position[2]);
let ArrowUp = this.xrSystem.Vector3.createFromNumber(position[0], position[1] + 1, position[2]);
//3、获取监听四元数
const arrowQuaternion = arrow.quaternion
//4、获取箭头到目标的向量
ArrowFacing.set(this.cameraTrs.position).sub(arrow.position, ArrowFacing);
xrSystem.Quaternion.lookRotation(ArrowFacing, ArrowUp, arrowQuaternion);
}
希望大佬帮我看下我的代码有什么问题?或者有相关类似的案例代码给我参考一下。非常感谢
官方demo里有一个AR对象始终朝向相机的计算案例,把相机换成被朝向的对象大概就是同样的逻辑吧,可以参考一下。