访问由 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();