访问由 Raycast Intersection 产生的对象上的 UserData
Accessing UserData on objects resulting from Raycast Intersection
我正在尝试在由 three.js 提供支持的 WebGL 场景中显示悬停对象的名称。我正在使用 Raycaster
class 进行光线投射,效果很好,我的对象改变了颜色,我知道它的位置,但是当我尝试访问对象的 userData
时,它显示 undefined
.
intersectObject()
函数返回的对象不是原始对象的副本吗?我想知道它是否在某个地方失去了它的属性。
function onMouseMove(e) {
var intersectedOne = false;
for (var i = 0, len = group.children.length; i < len; i++) {
setMaterial(group, material);
}
mouseVector.x = 2 * (e.clientX / window.innerWidth) - 1;
mouseVector.y = 1 - 2 * (e.clientY / window.innerHeight);
raycaster.setFromCamera(mouseVector, camera);
var intersects = raycaster.intersectObjects(group.children, true);
for (var i = 0; i < intersects.length; i++) {
var intersection = intersects[i];
var obj = intersection.object;
if (intersection != 0 && intersectedOne == false) {
intersectedOne = true;
obj.material = selectedMaterial;
text2.innerHTML = obj.userData.CADEIRA;
}
}
}
text2.innerHTML
每次我将鼠标悬停在一个对象上时都会显示 undefined
,而它应该显示对象的名称。
而不是做
var newObject = object.clone();
你应该做的
var newObject = child.clone();
我正在尝试在由 three.js 提供支持的 WebGL 场景中显示悬停对象的名称。我正在使用 Raycaster
class 进行光线投射,效果很好,我的对象改变了颜色,我知道它的位置,但是当我尝试访问对象的 userData
时,它显示 undefined
.
intersectObject()
函数返回的对象不是原始对象的副本吗?我想知道它是否在某个地方失去了它的属性。
function onMouseMove(e) {
var intersectedOne = false;
for (var i = 0, len = group.children.length; i < len; i++) {
setMaterial(group, material);
}
mouseVector.x = 2 * (e.clientX / window.innerWidth) - 1;
mouseVector.y = 1 - 2 * (e.clientY / window.innerHeight);
raycaster.setFromCamera(mouseVector, camera);
var intersects = raycaster.intersectObjects(group.children, true);
for (var i = 0; i < intersects.length; i++) {
var intersection = intersects[i];
var obj = intersection.object;
if (intersection != 0 && intersectedOne == false) {
intersectedOne = true;
obj.material = selectedMaterial;
text2.innerHTML = obj.userData.CADEIRA;
}
}
}
text2.innerHTML
每次我将鼠标悬停在一个对象上时都会显示 undefined
,而它应该显示对象的名称。
而不是做
var newObject = object.clone();
你应该做的
var newObject = child.clone();