我有 2 个网格。我想从第一个网格向第二个网格发射射弹。
为此,我在它们之间划了一条线。但我无法在这条“线”上平移射弹。我尝试使用translateOnAxis 函数,但它不起作用。
你知道沿着线移动物体的方法吗? 你还有别的方法吗?
谢谢,
托马斯
最佳答案
假设您有 object1(类型为 THREE.Object3D()
)并且您做了类似的操作:
object1.position.set( 1, 2, 3 );
var position2 = new THREE.Vector3( 11, 12, 13 );
并且您希望对象 1 移动到位置 2。
您可以包含 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
关于javascript - 在直线上移动网格 三个 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656301/