0

我正在尝试在three.js 中重置我的最新对象的位置。

首先我有这个:

function onDocumentMouseDown( event ) {

            event.preventDefault();
            var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );
            projector.unprojectVector( vector, camera );

            var raycaster = new THREE.Raycaster( camera.position, vector.sub( camera.position ).normalize() );

            var intersects = raycaster.intersectObjects( objects );

            if ( intersects.length > 0 ) {

                controls.enabled = false;

                SELECTED = intersects[ 0 ].object;

                container.style.cursor = 'move';

                //mouse Click goes here
                buildMenu();

            }

        }

在我的 buildMenu 函数中,我像这样定位我的对象:

function buildMenu(){
                camera.position.set(0,60,250);                  


                //HERE I POSITION MY SELECTED OBJECT

                SELECTED.position.x = 0;
                SELECTED.position.y = 50;
                SELECTED.position.z = 200;

                $(document).bind('click',function(){
                    $(document).click(function(){
                        scene.remove(overlayBG);

                     **//HERE I TRY TO RESET EVERYTHING BUT NOTHING WORKS : (**

                        });
                });

                //$('#bg, #menu').fadeIn(100)

            }

我以为我可以通过 $(document).click 函数中的 mesh.position.set(0,0,0) 轻松重置我的对象,但这不起作用。如何检测最新的(重新定位的)对象以及如何重新定位它。

4

1 回答 1

1

我不确定我是否理解正确。

做了一个简单的例子,你不需要为此绑定任何点击事件。例子在这里

//last selected object
 if ( SELECTED ){
    SELECTED.position.set(0,0,0);
} 
//new selected object
SELECTED = intersects[ 0 ].object;
于 2013-04-24T20:06:47.080 回答