使用FBXLoader- Three.js加载的相交对象

时间:2017-12-19 17:46:56

标签: javascript three.js

我正在使用FBXLoader加载fbx文件。它已成功加载并添加到场景对象中。我想点击这个对象来应用变换控件。除了通过FBXLoader加载外,所有其他对象都是可点击的。

#nav-list {
list-style-type: none;
padding-top: 30px;
padding-right: 20px;
margin: 0px;
overflow: hidden;
display: inline-table;
float: right;
}

#nav-list li {
display: table-cell;
vertical-align: middle;
padding: 0px 15px;
margin: 0px;
text-align: center;
line-height: 110%;
font-size: 1.3em;
font-family: Helvetica, Arial, sans-serif;
font-weight: 400;
}

#mobile {
display: none;
}

@media only screen and (max-width: 1050px) {
.nav-img {
    margin: 0px 5px 5px 5px;
}

#mobile {
    display: inline;
    float: right;
    background-color: transparent;
    border: 1px solid #333;
    border-radius: 5px;
    margin: 10px 10px 10px 0px;
    padding: 5px;
}

#nav-list {
    list-style-type: none;
    margin: 0px;
    padding: 0px;
    overflow: hidden;
    display: none;
    float: none
}

#nav-list li {
    display: block;
    text-align: center;
    margin: 10px 0px 10px 0px;
    line-height: 110%;
    font-size: 1em;
}

这是我的交叉码:

var loader = new THREE.FBXLoader( manager );
            loader.load( 'assets/models/fbx/iphone_ascii.fbx', function( object ) {
                scene.add( object );
            }, onProgress, onError );

1 个答案:

答案 0 :(得分:1)

THREE.Raycaster docs开始,请注意intersectObjects(objects, recursive)采用第二个参数。因为像FBX这样的模型通常是嵌套对象的集合,所以您需要使用recursive选项。

let intersects = ray.intersectObjects(this.scene.children, true);