我有2个网格。我想要从第一个网格射到第二个网格的射弹。
为此,我在他们之间划了一条线。但是我无法在这条"线"上翻译一个抛射物。我尝试使用translateOnAxis函数,但它没有用。
您是否知道在线后移动对象的方法? 你有其他方法吗?
谢谢,
托马斯
答案 0 :(得分:1)
因此,假设您有object1(类型为THREE.Object3D()
)并且您已完成以下操作:
object1.position.set( 1, 2, 3 );
var position2 = new THREE.Vector3( 11, 12, 13 );
并且您希望object1移动到position2。
您可以包含tween.js库并在两者之间进行补间:
setupObjectPositionTween( object1, object1.position.clone(), position2,
2000, 100, TWEEN.Easing.Linear.None ); // duration, delay, easing
使用:
function setupObjectPositionTween( object, source, target, duration, delay, easing )
{
new TWEEN.Tween( source )
.to( target, duration )
.delay( l_delay )
.easing( l_easing )
.onUpdate( function() { object.position.copy( source ); } )
.start();
}
修改强>
您需要添加动画循环:
TWEEN.update ();
并在init()中:
TWEEN.removeAll(); // clear out tween buffer