three.js如何给外置模型添加点击事件啊 10

比方说,我点击引入的一个人物,弹出一个框框,像个人信息的那种。但是问题在于我不知道three.js的点击事件如何添加... 比方说,我点击引入的一个人物,弹出一个框框,像个人信息的那种。但是问题在于我不知道three.js的点击事件如何添加 展开
 我来答
来自观音湖喜盈盈的栾树
2018-12-10
知道答主
回答量:1
采纳率:0%
帮助的人:803
展开全部

我说一下我的实现场景。

1.引入了一个obj的模型(引入相应的loader.js。我这里用的MTL,OBJ,DDSloader)

THREE.Loader.Handlers.add( /\.dds$/i, new THREE.DDSLoader() );
    var mtlLoader = new THREE.MTLLoader();
    mtlLoader.load('model/gaoda/file.mtl',function(materials){
materials.preload();
var loader = new THREE.OBJLoader();
loader.setMaterials(materials);
loader.load( 'model/gaoda/file.obj', function ( obj ) {
  _this.cube = obj;
  _this.cube.position.set(0,1,0);
  _this.scene.add( _this.cube );
}, onProgress, onError );
});

2.在three的raysects为模型添加事件

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
mouse.x = ( event.clientX / window.innerWidth )*2 - 1;
mouse.y = -( event.clientY / window.innerHeight )*2 + 1;
raycaster.setFromCamera( mouse, _this.camera );
var intersects = raycaster.intersectObjects( _this.cube.children );
_this.initMessage(intersects,event.clientX,event.clientY);

3.最后监听该点击事件就行了。

 window.addEventListener('click',this.clickModel,false);

效果图如下:

我也是才开始学习THREE。希望能帮助到你。

一梦千年夜
2016-05-11 · 知道合伙人互联网行家
一梦千年夜
知道合伙人互联网行家
采纳数:1244 获赞数:16986
从事网络运营已有三年多,谈不上专家,但是有一些自己的经验可以和大家分享

向TA提问 私信TA
展开全部
  1.  假设dae_scene从ColladaLoader一个COLLADA现场回来,这里是你可以做什么检查交集:var toIntersect = [];
    THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) {
    if (child instanceof THREE.Mesh) {
     toIntersect.push(child);
    }
    });

    这得到了COLLADA场景内的所有网格对象。您可以在数组中寻找射线相交,像这样:var ray = new THREE.Ray( camera.position,
          vector.subSelf( camera.position ).normalize() );
    var intersects = ray.intersectObjects( toIntersect );

  2. 是这样一个思路。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抱我回家i
2018-12-03
知道答主
回答量:1
采纳率:0%
帮助的人:805
展开全部
这个实现了吗 我也遇到了这个问题 希望你能帮我一下 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式