Unity 如何获取鼠标停留位置下的物体
- 作者: 本人阅女无术
- 来源: 51数据库
- 2021-07-07
根据ugui的射线检测机制获取当前鼠标下的ui:
其中,results为鼠标下ui的列表。
不仅适用于ugui,可以在摄像机上添加physicsraycaster组件,传参为摄像机,这样就可以获取3d物体。
刚遇到一个问题,我的ui点击包括3d物体点击都是用的eventsystem,也就是上面的方法,这时用
unityengine.eventsystems.eventsystem.current.ispointerovergameobject()这个方法去判断鼠标是否在ui上,就会出现鼠标在3d物体上也会拿到返回值,(没有去研究传参index的用法),直接选择了上面获取ui的获取方法。
脚本:
补充:unity中鼠标经过一个物体时出现提示
首先被检测的物体要有collider
补充:unity中ugui中获取鼠标点击位置以及ui物体的屏幕坐标
鼠标点击位置:
直接访问input.mouseposition属性,返回一个三维屏幕坐标,即鼠标的坐标。
ui物体的屏幕坐标:
recttransformutility.wordtoscreenpoint(camera.main, recttransform.position),返回的是二维屏幕坐标。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
推荐阅读
- C#通过fleck实现wss协议的WebSocket多人Web实时聊天(附源码)
- 团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
- 使用 MSBuild.exe 在发布模式下构建 C# 解决方案
- 当我发布 Web 应用程序时,AfterPublish 脚本不运行
- 构建时 T4 转换的产品仅在下一个构建中使用
- ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
- 新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
- 如何将条件编译符号(DefineConstants)传递给 msbuild
- MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
- NuGet 包还原找不到包,没有源
热点文章
团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
0
使用 MSBuild.exe 在发布模式下构建 C# 解决方案
0
当我发布 Web 应用程序时,AfterPublish 脚本不运行
0
构建时 T4 转换的产品仅在下一个构建中使用
0
ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
0
新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
0
如何将条件编译符号(DefineConstants)传递给 msbuild
0
MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
0
NuGet 包还原找不到包,没有源
0
使用 C# 6.0 功能运行 TFS 构建
0
