在three.js中向raycaster方向绘制线

望远镜

在three.js中,我使用PointerLock控件来制作基本的第一人称射击游戏。我用

function onDocumentMouseDown( event ) {
  var raycaster = new THREE.Raycaster();
  mouse3D.normalize();
  controls.getDirection( mouse3D );
  raycaster.set( controls.getObject().position, mouse3D );
  var intersects = raycaster.intersectObjects( objects );
  ...
}

检测与物体的碰撞,这意味着您“射击”了物体。

现在,我想对子弹走的路径进行可视化。我当时正在考虑沿用户的视线在光线投射器的方向画一条线,但我不知道该怎么做...有谁可以帮助我?我是three.js的新手,从没想过要画一条线会这么难。

更新:我正在尝试使用以下方法画一条线:

var geometry = new THREE.Geometry();
geometry.vertices.push(...);
geometry.vertices.push(...);
var line = new THREE.Line(geometry, material);
scene.add(line);

但是我不知道该用什么代替“ ...”。如何检测线段应到达的点?以及如何确定它从哪一点开始?玩家能够移动甚至跳跃,因此起点也总是不同的。

盖塔特

您可以使用以下命令(使用r83):

    // Draw a line from pointA in the given direction at distance 100
    var pointA = new THREE.Vector3( 0, 0, 0 );
    var direction = new THREE.Vector3( 10, 0, 0 );
    direction.normalize();

    var distance = 100; // at what distance to determine pointB

    var pointB = new THREE.Vector3();
    pointB.addVectors ( pointA, direction.multiplyScalar( distance ) );

    var geometry = new THREE.Geometry();
    geometry.vertices.push( pointA );
    geometry.vertices.push( pointB );
    var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
    var line = new THREE.Line( geometry, material );
    scene.add( line );

Codepen位于:https://codepen.io/anon/pen/evNqGy

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

容器中的three.js raycaster

来自分类Dev

请解释three.js Raycaster方向参数

来自分类Dev

Three.js raycaster交集

来自分类Dev

Three.js-如何使用BufferGeometry绘制不连续的线?

来自分类Dev

Three.js-如何使用BufferGeometry绘制不连续的线?

来自分类Dev

在three.js中以不同方向绘制和旋转

来自分类Dev

three.js中旋转或惯用的方向

来自分类Dev

Three.js不准确的Raycaster

来自分类Dev

在Three.js中绘制网格的边缘

来自分类Dev

在Three.js中沿样条线(圆)移动对象

来自分类Dev

在three.js中绕圆旋转线

来自分类Dev

在Three.js中访问VR耳机方向

来自分类Dev

Three.js invisible plane not working with raycaster.intersectObject

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

Three.js使用Raycaster更改网格面颜色

来自分类Dev

从对象移开后,Three.js raycaster不会击中对象

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

Three.Js在webgl中绘制线性渐变纹理

来自分类Dev

THREE.js中未绘制低比例模型

来自分类Dev

在THREE.js中绘制3d边界框

来自分类Dev

在Three.js中向顶点添加点

来自分类Dev

有没有一种方法可以在Three.js中的“平面网格”的线框中绘制某些线?

来自分类Dev

Three.js:将圆柱体旋转到Vector3方向

来自分类Dev

THREE.ObjectLoader的Three.js错误

来自分类Dev

如何绘制Three.js模型?

来自分类Dev

如何绘制Three.js模型?

来自分类Dev

three.js中的网格

来自分类Dev

Three.js中的verticesNeedUpdate

来自分类Dev

THREE.js中的ParametricBufferGeometry