threejs下监听mesh事件与监听3D对象的区别

先说结论

监听mesh时会导致同一mesh下同一个位置,如果重叠着多个3D对象,点击事件会被触发多次。而监听3D对象只有这个对象会触发这个事件一次。

技术架构

  • react
  • threejs
  • @react-three/drei
  • @react-three/fiber

场景

有这样一段代码,一个网格对象(mesh)中有一个平面(Plane),当我在网格上监听鼠标抬起事件时,被触发了三次:

const PerspectiveCameraZ = 500/*** 区域平面*/
const SrAreaPlane: React.FC<SrAreaPlaneProps> = (props) => {const { imageUrl } = propsconst texture = useLoader(TextureLoader, isEmpty(imageUrl) ? defaultImage : imageUrl)// 获取纹理的宽度和高度,固定宽度const textureWidth = PerspectiveCameraZ// 高度等比缩小const textureHeight = (texture.image.height * PerspectiveCameraZ) / texture.image.widthreturn (<meshonPointerUp={(event) => {// ...}}><Plane args={[textureWidth, textureHeight]}><meshBasicMaterial map={texture} side={DoubleSide} transparent={true} /></Plane>// 假设这里有更多的内容</mesh>)

后来排查原因发现:

监听mesh时会导致同一mesh下同一个位置,如果重叠着多个3D对象,点击事件会被触发多次。而监听3D对象只有这个对象会触发这个事件一次。

将事件监听移动到Plane上,问题就得到解决了。

这是个有意思的问题,值得分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git安装

简单粗暴&#xff0c;跟着步骤一步一步来 右键就会有了

Rust内存布局

题图忘了来自哪里.. 整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b: u64, c: i32,}struct D { a: i32, b: u64, c: i32, d: u64,}fn main(…

优思学院|如何在企业中实施降本增效策略,实现财务突破

在当今竞争激烈的商业环境中&#xff0c;企业降低成本并提高效益变得至关重要。本文将深入探讨如何降本增效&#xff0c;以及实施这些策略的方法。 提到降本增效或提升生产效率&#xff0c;第一个被提出来检讨的一定是直接部门。但是如果无视于日渐臃肿的间接部门&#xff0c;…

[AWS 考证]CSDN官方课程目录

一、亚马逊云科技简介 二、在云中计算 三、全球基础设施和可靠性 四、联网 五、存储和数据库 六、安全性 七、监控和分析 八、定价和支持 九、迁移和创新 十、云之旅 关注订阅号 CSDN 官方中文视频&#xff08;免费&#xff09;&#xff1a;点击进入 一、亚马逊云科…

TS 函数及多态

TS 能推导出函数体中的类型&#xff0c;但多数情况下无法推导出参数的类型&#xff0c;只有少数特殊情况下能根据上下文推导参数的类型。返回类型能推导出&#xff0c;不过也可以显式注解。 1 声明和调用函数 一般来说&#xff0c;在方法中的this值为调用该方法时位于点号左侧…

用python自行开发的流星监控系统meteor_monitor(第二篇)

代码&#xff1a; GitHub - xingxinghuo1000/meteor_monitor_scripts 本篇为最新代码的方案介绍和使用介绍。第一篇已经过时了&#xff0c;不建议看 。只看这一篇即可。 背景 著名的流星监控软件ufocapturehd2有几个缺陷&#xff0c;不能忍 1、吃性能&#xff0c;我的工控电脑…

大模型下交互式数据挖掘的探索与发现

在这个数据驱动的时代&#xff0c;数据挖掘已成为解锁信息宝库的关键。过去&#xff0c;我们依赖传统的拖拉拽方式来建模&#xff0c;这种方式在早期的数据探索中起到了作用&#xff0c;但随着数据量的激增和需求的多样化&#xff0c;它的局限性逐渐显露。 >>>> 首…

App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法

​ 引言 在iOS应用程序开发过程中&#xff0c;进行App备案并获取公钥及证书SHA-1指纹是至关重要的步骤。本文将介绍如何通过appuploader工具获取iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹&#xff0c;帮助开发者更好地理解和应用该过程。 正文 iOS应用程序…

【从删库到跑路 | MySQL总结篇】表的增删查改(进阶上)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、数据…

Node.js入门指南(五)

目录 MongoDB 介绍 下载与启动 命令行交互 Mongoose 代码模块化 图形化管理工具 hello&#xff0c;大家好&#xff01;上一篇文章我们介绍了express框架&#xff0c;这一篇文字主要介绍MongoDB。来对数据进行存储以及操作。 MongoDB 介绍 各位小伙伴应该多多少少都有接…

uniapp基础-教程之HBuilderX基础常识篇03

该内容为了大家更好的理解&#xff0c;将每个页面进行分离&#xff0c;单独创建项目&#xff0c;如在index中之写只写了一个搜索框&#xff0c;将其他页面分别放在HBuilderX目录中的components中&#xff0c;没有的可自行创建。 然后在components中创建轮播图新建一个swiper.v…

java elasticsearch 桶聚合(bucket)

Elasticsearch指标聚合&#xff0c;就是类似SQL的统计函数&#xff0c;指标聚合可以单独使用&#xff0c;也可以跟桶聚合一起使用&#xff0c;下面介绍Java Elasticsearch指标聚合的写法。 实例&#xff1a; // 首先创建RestClient&#xff0c;后续章节通过RestClient对象进行…

正则化与正则剪枝

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 引言正则化为什么会过拟合拉格朗日与正则化梯度衰减与正则化 应用解决过拟合网络剪枝 …

Linux篇:文件管理

一、共识原理&#xff1a; 1. 文件内容属性&#xff0c;内容与属性都是数据&#xff0c;都要在磁盘中保存。 2. 文件分为打开的文件和没打开的文件。 3. 研究打开的文件&#xff1a;本质是研究进程和文件的关系&#xff0c;因为是进程负责打开文件。 4. 没打开的文件在存储介质…

爬虫爬取百度图片、搜狗图片

通过以下代码可以爬取两大图片网站&#xff08;百度和搜狗&#xff09;的图片&#xff0c;对于人工智能、深度学习中图片数据的搜集很有帮助&#xff01; 一、爬取百度图片 该代码可以爬取任意百度图片中自定义的图片&#xff1a; import requests import re import time imp…

红黑树(万字图文详解)

红黑树 1. 红黑树的概念2. 红黑树的性质3. 红黑树节点的定义4. 红黑树结构5. 红黑树的插入操作5.1 按照二叉搜索的树规则插入新节点5.2 检测新节点插入后&#xff0c;红黑树的性质是否造到破坏5.2.1 情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在且为红…

智能优化算法应用:基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蜻蜓算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜻蜓算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

人工智能时代下的开发与运维:变革与挑战

文章目录 引言对开发行业的积极影响对运维行业的积极影响可能存在的一些风险 结言 引言 随着人工智能的迅速发展&#xff0c;开发和运维这两个领域正经历着翻天覆地的变革。这场技术革命不仅加速了创新的步伐&#xff0c;还重新定义了我们对于软件开发和系统维护的认知。让我们…

【springboot】宝塔简单部署springboot 配置https

宝塔简单部署springboot配置https 需求步骤1. springboot通过maven组件打成jar包2. 将jar包部署到宝塔上3. 下载安装nginx并创建网站节点4. 设置域名或者IP5. 设置反向代理:代理后端服务的ip和端口7. 配置SSL/TLS 需求 宝塔部署springboot项目,用nginx反向代理后端IP端口&…

深度学习黎明时期的LeNet:揭开卷积神经网络的序幕

在深度学习的历史长河中&#xff0c;Yann LeCun 的 LeNet 是一个里程碑式的研究成果&#xff0c;它为后来的卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;的发展奠定了基础。LeNet 的诞生标志着深度学习黎明时期的到来&#xff0c;为人工…