gpt4 book ai didi

line - 用于碰撞检测的 Three.js 射线转换

转载 作者:行者123 更新时间:2023-12-04 15:59:52 25 4
gpt4 key购买 nike

我正在尝试使用光线转换绘制一条线。基本上我想从我的“玩家”对象向各个方向设置一些线。

(像这样:https://gamedev.stackexchange.com/questions/35013/how-to-handle-3d-collisions-using-raycasting-with-a-reflection-vector)

我想要这个,所以我可以使用我可以直观地看到我的碰撞检测。

我知道我可以使用不同的方式进行碰撞检测,但我将这种方式用作学习检测。

我的问题是下面的代码画了一条线,但它似乎随机改变长度,并不总是指向相同的角度。

var ray = new THREE.Ray( player.model.objects.position, new THREE.Vector3(1, 1, 1));


var geometry = new THREE.Geometry();


// my issue is here. I don't think this is the right way use a ray to workout the second vector?

// EDIT: Realized this should be set at player position and outwards.
//var newx = 300 * ray.direction.x;
//var newz = 300 * ray.direction.z;

// EDIT CODE UPDATE
var newx = (player.model.objects.position.x) + (60 * ray.direction.x);
var newz = (player.model.objects.position.z) + (60 * ray.direction.z);

// THREE.Vector3 {x: 1310.1526178356803, y: 0, z: 1290.8237947033065}
console.log(player.model.objects.position);

geometry.vertices.push( player.model.objects.position);
geometry.vertices.push( new THREE.Vector3(newx, player.model.objects.position.y, newz));

var line = new THREE.Line(geometry, material);

scene.add(line);

任何帮助表示赞赏。

最佳答案

看到那个模型后,我试图做同样的事情..因为我试图以同样的方式做但无法弄清楚,我会提供一个替代方案。

var line;

function update() {

// Z- DIRECTION
raycaster.ray.direction.set(0, 0, -1);

var geometry = new THREE.Geometry();

intersections = raycaster.intersectObjects( objects );
if ( intersections.length > 0 ) {
var geometry = new THREE.Geometry();

// POSITION OF MESH TO SHOOT RAYS OUT OF
geometry.vertices.push( obj.position );
geometry.vertices.push( intersections[0].point );

scene.remove(line);
line = new THREE.Line(geometry, new THREE.LineBasicMaterial({color: 0x990000}));
scene.add(line);
}

}

所以现在你有一条线从你的网格中射出到最近的相交处。

https://dl.dropbox.com/u/42766757/guy.png

关于line - 用于碰撞检测的 Three.js 射线转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com