单击Three.js后重置SELECTED对象的位置

时间:2013-04-24 14:49:08

标签: javascript three.js drag event-listener

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

首先我有这个:

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)轻松重置我的Object,但这不起作用。如何检测最新(重新定位)对象以及如何重新定位它。

1 个答案:

答案 0 :(得分:1)

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

举一个简单的例子,你不需要为此绑定任何点击事件。 Example is here

//last selected object
 if ( SELECTED ){
    SELECTED.position.set(0,0,0);
} 
//new selected object
SELECTED = intersects[ 0 ].object;