你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
发现
话题
全文搜索
登录
[0]射线穿透问题
射线在2.11版本中会穿透,在2.7的版本中不会穿透,而且在2.11版本中我点击一下,射线触发了两次甚至多次
没有找到相关结果
已邀请:
与内容相关的链接
提交
4 个回复
Laya_Fred
赞同来自:
您好,您提交个可以复现的demo吧,方便进行问题定位。
132*****736
赞同来自:
this.point.x = Laya.MouseManager.instance.mouseX;
this.point.y = Laya.MouseManager.instance.mouseY;
//产生射线
this.camera.viewportPointToRay(this.point,this.ray);
//拿到射线碰撞的物体
this.scene.physicsSimulation.rayCast(this.ray,this.outHitResult);
//如果碰撞到物体
if (this.outHitResult.succeeded)
{
console.log(this.outHitResult.collider.owner.name);
}
132*****736
赞同来自:
点击老是多触发,明明点击了一下,却触发了4下
shiping_-_副本.rar
Laya_Fred
赞同来自:
您好,在您的demo里出现多次触发射线检测的原因是存在两次事件监听的执行,您在onPreLoadFinish内注册了鼠标按下、抬起的监听,但监听函数用的是脚本的生命周期函数,脚本的生命周期函数不需要注册监听。多次注册监听并且使用同一监听函数导致您的射线检测进行两次。
有两个方案可以进行修改:
方案一、弃用onPreLoadFinish内的监听注册,直接使用脚本的onMouseUp、onMouseDown函数实现射线检测。
方案二、仍在onPreLoadFinish内进行监听注册,同时修改监听函数名,不要使用脚本的生命周期函数,同时将下面对应的脚本生命周期函数改为监听函数名。
关于laya的脚本生命周期可以在这个文档内进行查看
脚本的生命周期
。
要回复问题请先
登录
发起人
132*****736
相关问题
发起问题须知,必看!!!不按提问规则的,官方拒绝解答!!!
laya针对页游耗用内存大的问题是如何解决的?
unity导出粒子文件问题
LayaAir3D UnityPlugin 使用须知-版本更新-问题解答(最新版本:1.7.16)
使用钢体设置防穿后仍有几率会穿透
关于适配采用showAll后留白部分的颜色问题
IDE1.7.8 json图集加载问题
求指点3d射线碰撞和UI点击穿透的问题
写了个边缘光的自定义shader,有很多问题,帮忙看一下
我这样载入场景问题出现在哪呢??
横屏模式在锁定竖屏的iphone上不能正常显示的问题
问题状态
最新活动:
2021-09-22 17:36
浏览:
965
关注:
2
人
商务合作
4 个回复
Laya_Fred
赞同来自:
132*****736
赞同来自:
this.point.y = Laya.MouseManager.instance.mouseY;
//产生射线
this.camera.viewportPointToRay(this.point,this.ray);
//拿到射线碰撞的物体
this.scene.physicsSimulation.rayCast(this.ray,this.outHitResult);
//如果碰撞到物体
if (this.outHitResult.succeeded)
{
console.log(this.outHitResult.collider.owner.name);
}
132*****736
赞同来自:
Laya_Fred
赞同来自:
有两个方案可以进行修改:
方案一、弃用onPreLoadFinish内的监听注册,直接使用脚本的onMouseUp、onMouseDown函数实现射线检测。
方案二、仍在onPreLoadFinish内进行监听注册,同时修改监听函数名,不要使用脚本的生命周期函数,同时将下面对应的脚本生命周期函数改为监听函数名。
关于laya的脚本生命周期可以在这个文档内进行查看 脚本的生命周期 。