我正在尝试开发简单的游戏,需要发射子弹。子弹运动必须相对于世界空间发生。但是通常在拍摄时将飞行方向设置为智能手机。 问题是要计算目的地。我想到了以下步骤: 订阅触发事件并在脚本中执行 DeviceMotion.worldTransform 应用于vector(0,0,1)(这是相机的法线方向) 以获得世界协调风格的终点。 然后,我使用补丁编辑器中的脚本输出将3d对象的过渡块中的端点设置为动画拍摄。 我是反应式编程的新手,所以我不确定这个概念是否正确。 那么算法正确吗?有人可以给我提示如何计算终点吗?
答案 0 :(得分:0)
这是一种实现方法...您可以使用点跟踪/点锚获取端点,然后使用Reactive.mix为摄影机转换和跟踪器转换之间的过渡设置动画
//get start and end transforms
let start = Camera.worldTransform;
let end = tracker.globalTransform;
//setup animation
let driver = Animation.timeDriver({durationMilliseconds: 100});
let sampler = Animation.samplers.linear(0,1);
let anim = Animation.animation(driver, sampler);
//setup bullet transforms
bullet.x = Reactive.mix(start.x, end.x, anim);
bullet.y = Reactive.mix(start.y, end.y, anim);
bullet.z = Reactive.mix(start.z, end.z, anim);
//start the animation
driver.start();
祝你好运!