unity小地图点击位置映射到地图实体位置(类似王者荣耀的小地图点击功能)

爱裸奔的小亮亮 爱裸奔的小亮亮     2022-08-25     493

关键词:

小地图自制功能就不多说了,我的小地图制作参考地址:https://www.youtube.com/watch?v=EeyZ2y2Jpz4

建议直接到地址中去看UGUI的小地图的制作,觉得还是讲得比较好的。

下面在参考地址的制作前提下做一个小地图点击位置映射到地图实体位置中去的功能。

准备工作:

  搭建场景:

  

  

  简单来说就是自己随意搭建一个场景,然后俯视将场景截图保存作为UI的Image图片当作小地图的背景图片(这样就不利用另一个摄像机通过RenderTexture来做背景了)

  UI的目录解析如下:

  

  MapContainer:一个Panel组件和加上MapManager脚本(后面会提供)和一个Mask组件

  Map:一个Image组件,把上面截图实体环境的图片作为该Image的图源,加上MapIcon脚本和MapCtrl脚本。

  以上就是当前文章的前提了,下面开始讲解小地图点击位置映射到地图实体位置的数学原理。

  第一步:获取到鼠标点击到小地图的坐标(mapX,mapY),如图:

  

 

  那我们应该怎么获取呢?其实很简单,在这个案例中,我们可以通过Unity提供的API可获得屏幕的宽和高(Screen.width,Screen.height),鼠标点击的坐标(mouseX,mouseY)和小地图的宽和高(RectTransform.rect.width,RectTransform.rect.height)

  在这三个可知条件下我们就可以计算得出点击小地图自身的坐标(mapX,mapY)了。如下:

  mapX = mouseX - ( Screen.width -RectTransform.rect.width )

  mapY = mouseY - ( Screen.height -RectTransform.rect.height )

  

  这样就可以获得鼠标点击小地图自身的坐标系了。

  第二步:通过小地图点击获得自身的坐标系等比例映射到真实地图的坐标系

  在这里我们可以通过“真实地形”的MeshRender组件的bounds.size可获得“真实地形”的宽和高(MeshRenderer.bounds.size.x,MeshRenderer.bounds.size.z)

  这样就可以很轻松地通过等比例运算就可以获得相应坐标了,计算公式如下:

  realX = (mapX / RectTransform.rect.width) * MeshRenderer.bounds.size.x - MeshRenderer.bounds.size.x / 2;

  realY = (mapY / RectTransform.rect.height) * MeshRenderer.bounds.size.y - MeshRenderer.bounds.size.y / 2;

  这里因为我的“真实地形”是放在中心点(0,0,0),所以要减去“真实地形”的一半,让他回归到原点,否则映射的坐标会大于一半,自己琢磨一下就明白了。

  到这里就结束了,还有不明白的可以在下面问我,会的尽量解答。

  整个项目下载地址:https://git.oschina.net/TMoon-Net/MapManager/tree/master

    项目里也有小地图制作的代码~~~

unity小地图map(代码片段)

...通过一些屏幕宽度跟鼠标位置计算出相对位置,然后根据地图的比例算出来的,这样的地图只能靠近屏幕的角落(当然不排除可以把另外一部分减去也可以) 今天我提供一个另外思路的Map,废话少说,直接上的代码 思路... 查看详情

如何将用户位置映射到不真实的地图?

】如何将用户位置映射到不真实的地图?【英文标题】:Howtomapauserlocationtoanottruetorealismmap?【发布时间】:2016-09-0921:06:26【问题描述】:很抱歉,如果这个问题很宽泛,但我无法找到任何真正解决我必须解决的问题的方法。我需... 查看详情

微信小程序中使用高德地图关键词搜索以及点击位置获取位置信息

参考技术A官网地址:https://lbs.qq.com/qqmap_wx_jssdk/method-getsuggestion.html1、poimap.wxml2、poimap.wxss3、poimap.js 查看详情

安卓开发百度地图api:如何点击图标后把当前位置移到地图中心?

...置的LatLng).zoom(18).build();//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化 MapStatusUpdatemMapStatusUpdate=MapStatusUpdateFactory.newMapStatus(mMapStatus); //改变地图状态 mBaiduMap.animateMapStatus(mMapStatusUpdate); 参考技术B你这个就要在设置点击... 查看详情

将位置从 ASA 映射到 powerbi

...置纬度和经度。我正在尝试从这些位置在powerbi.com上创建地图。我正在创建地图并将纬度和经度字段添加到地图纬度和经度字段。但是什么也没有产生。它也需要一些位置字段。我应该在那里提供什么数据?【问题讨论】:您好... 查看详情

在点击位置的地图上移动角色

】在点击位置的地图上移动角色【英文标题】:Movecharacteronmaponclickedposition【发布时间】:2019-12-2906:06:18【问题描述】:我有一张地图,可以通过更改margin-top和margin-left逻辑来移动它。当我单击箭头时,jQuery会更改左/上边距并且... 查看详情

微信小程序如何设置地图导航

微信小程序如何设置地图导航登入到速成应用平台账号,进入到“小程序模板”页面,选择“新建空白小程序”或选中某个模板后点击“使用”,随后设置下项目封面和标题,进入到小程序编辑页面;可以使用文本、图片等组件... 查看详情

店铺如何上百度地图?

参考技术A如何让我的店铺在百度地图上显示方法:进入百度,然后注册一个百度账号。登陆,完善个人信息。打开百度地图,登陆百度账号,在右上角有一个商家免费标注,点击进入。在地图上方的框中输入店铺名字,如果能... 查看详情

如何知道我所在位置的经纬度,有百度地图

1、首先打开百度地图软件,进入地图页面后,在其正下方找到“地图开放平台”选项。2、点击进入“地图开放平台”后,找到“工具支持”栏目,选择其中的“坐标拾取器”。3、然后页面会跳转到地图界面,找到需要查看经纬... 查看详情

高德地图怎样定位自己的位置

以手机型号「OPPO-Reno5-Pro」和手机「高德地图版本12.01.0.2955」来讲,只需打开高德地图,就能看到自己的定位。1.打开手机桌面里的高德地图。2.在高德地图首页的地图中,就可以看到自己当前所在的具体地理位置。这就是使用高... 查看详情

如何定位自己的位置

...位置信息,如下图所示。参考技术A手机上下载安装电子地图,比如高德地图,腾讯地图,百度地图,这些都可以,打开就有你的位置显示。下载水印相机,打开之后就有你的位置显示,还可以更改 参考技术B回答地理位置定位设... 查看详情

百度地图开发中怎么实现点击地图中的字或建筑获取到位置,如图

不要说用click监听,这样只能点击空白处~我需要获取地图上标记的建筑或位置的坐标~参考技术A对mapview添加OnMapClickListener事件监听,监听中有两个方法,publicvoidonMapClick(LatLngpoint)获取到的是空白地点的坐标;publicbooleanonMapPoiCl... 查看详情

Android:超链接文本视图到地图位置?

】Android:超链接文本视图到地图位置?【英文标题】:Android:hyperlinktextviewtoamaplocation?【发布时间】:2011-08-2409:25:37【问题描述】:我阅读了Linkify的文档,知道如何制作超链接Textview并在用户单击它时打开浏览器,但无论如何制... 查看详情

为啥谷歌地图在首次启动时不会自动缩放到用户位置?

】为啥谷歌地图在首次启动时不会自动缩放到用户位置?【英文标题】:Whywon\'tGooglemapsautozoomtouserlocationwhenitfirststarts?为什么谷歌地图在首次启动时不会自动缩放到用户位置?【发布时间】:2019-06-1507:43:00【问题描述】:当用户... 查看详情

怎么在百度地图上看我的位置

1、首先进行百度地图的权限设置,点击进入手机设置,选择“应用”选项。2、在“应用”中点击“权限管理”。3、在“权限管理”中找到“百度地图”,点击进入。4、将“百度地图”的“位置信息”后面的开关打开。5、然后... 查看详情

高德地图怎么添加地址定位?

高德地图怎么添加地址定位?或许很多人不会操作,我们下面就带来了教程,一起看看高德地图怎么添加地址定位吧。工具/原料小米11MIUI12.0.0.1高德地图12.05.2方法/步骤1、打开高德地图app,在首页地图上找到需要添加的位置;2... 查看详情

《腾讯地图》位置链接获得方法介绍

参考技术A使用地图软件进行导航的时候,我们可能需要把自己的位置信息分享给其他的朋友,如果是在使用腾讯地图,该怎么分享位置的链接呢?下面我来为大家讲一讲获得腾讯地图链接的方法。方法:1.先打开腾讯地图,然后... 查看详情

将 Google 地图相机移动到某个位置

】将Google地图相机移动到某个位置【英文标题】:MovingGoogleMapsCameratoaLocation【发布时间】:2017-10-1209:49:28【问题描述】:我正在使用GoogleMapsView,我想在地图上添加一个按钮,点击该按钮时,会将相机移动到特定位置。我目前有... 查看详情