mapbox for unity 再现真实地图

原创 2017年07月17日 20:52:26

说到游戏中的真实地图,大家脑海中浮现的第一款游戏应该都是火爆全球的AR游戏《Pokémon Go》吧。今天这篇教程将为大家介绍Mapbox Unity SDK,能够在游戏中获取真实的世界地图,或是根据真实地图生成游戏中的体素世界。这些地图数据可以预先存储在游戏或应用中,也可以在运行时动态生成。

注册官网账号

打开mapbox官网(传送门)账号注册成功并登录后,点击Get Started 并选择Unity的sdk
这里写图片描述
记得复制下来它给你提供的密钥哦

导入unity

将下载的sdk导入unity,此时在菜单栏就会出现Mapbox选项
这里写图片描述
输入你的密钥后,我们就可以正式开始啦。
【如果Token生效,编辑器会出现“TokenValid”提示。】
注意:博主亲身体验的情况,在导入后,出现了在网上查询不到的报错;
这里写图片描述
代码中所有涉及到mesh的语句都报错了,博主到网上查了半天,因为有关的教程很少,也不知道是什么原因,如何有大神知道,麻烦留言告知我啦
反正我的解决方法简单粗暴,就是把报错的代码都注释掉了,神奇的是,对使用没有啥影响(至少现在我没看出来qwq)

示例场景

Mapbox插件提供了大量示例场景,其中最简单的示例场景Slippy,也是游戏项目较为常用的功能案例。它展示了地图从选中的某点开始不断向外延伸,根据视野范围的变化来实时加载新的地形,这也是游戏中追踪某个对象的真实地理位置时常用的功能。
这里写图片描述
【好的我不会做动图…】
此示例使用了3D网格,与Unity自带的3D地形无异。场景中的Map游戏对象带有Abstract Map脚本,可以在此脚本中设置地形的起始位置的经纬度与延展范围。
这里写图片描述
Abstract Map脚本的Map Visualization字段用于定义地图外观。Mapbox插件已经提供了一些不同的视觉效果,但您也可以选择自定义或重新创建地形。
这里写图片描述
将Map Visualization字段设为PoiDemoVisualization,并将起始位置改为上海,效果如下:

这里写图片描述
如果想生成《我的世界》那样的体素地图,可以打开VoxelWorld场景看看其设置。效果如下:
这里写图片描述
自定义地图
除了Mapbox提供的示例地图外观,还可以自定义想显示的地图信息。下面就为大家介绍自定义地图的步骤。

首先新建文件夹“CityMap”,然后在项目视图选中该文件夹后单击右键,依次选择Create - Mapbox - MapVisualization新建可编程对象MapVisualizer,该对象将用作地图的根节点,来承载所有的地图层次。
在检视面板中选中CityMap对象,添加CityTerrain为其第一个Factory。
这里写图片描述
可以在CityTerrain对象中设置高度缩放值,来改变建筑所显示的高度比例。
这里写图片描述
温馨提示:如果不希望地图出现高光,可以新建材质后将其Smoothness改为0 ,然后替代CityTerrain对象所使用的材质。

下面创建Map Image Factory。在“CityMap”目录下新建文件夹“CityImagery”,然后在项目视图选中该文件夹后单击右键,依次选择Create - Mapbox - Factories - Map Image Factory新建可编程对象 CityImagery。
这里写图片描述
选中CityImagery对象,将其Style设为Dark。
这里写图片描述
然后选中CityMap对象,将CityImagery添加为其第二个Factory。
这里写图片描述
新建场景后创建游戏对象Map,并为其绑定AbstractMap脚本。
将脚本的MapVisualizer属性设为CityMap,Zoom设为16。然后为Map对象添加RangeTileProvider脚本,将其范围设为(1, 1, 1, 1),并将RangeTileProvider脚本赋给AbstractMap的Tile Provider字段。如下:
这里写图片描述
其中Range表示以设置的经纬度为中心,Mapbox向中心的4个方向所生成的地块数量,默认为0。到此一个最简单的自定义地图就完成了,点击运行可以看到生成的地图外观如下:
这里写图片描述
还可以在此基础上添加更多层,来放置3D建筑、道路纹理等内容。

本文整理摘自Unity官方公众号

版权声明:本文为博主原创文章,未经博主允许不得转载。

Unity如何利用Mapbox在游戏中实现真实地图?

说到游戏中的真实地图,大家脑海中浮现的第一款游戏应该都是火爆全球的AR游戏《Pokémon Go》吧。今天这篇教程将为大家介绍Mapbox Unity SDK,能够在游戏中获取真实的世界地图,或是根据...
  • wtaotao2016
  • wtaotao2016
  • 2017年06月18日 21:36
  • 1654

Android开发,MapBox的使用及部分功能实现(一)----- 初始化、标记、定位、styleurl

近期,应公司要求,开始接触MapBox For Android的开发。 经过初步的接触,发现MapBox与我之前使用的Arcgis有很多不同,相比起来,MapBox更清洁,更轻便,也更容易使用,但是相...
  • Stanny_Bing
  • Stanny_Bing
  • 2017年04月18日 18:25
  • 2523

Android地图应用新视界--mapbox的常用功能封装工具类

上一篇- Android地图应用新视界--mapbox的应用开发之初始集成篇-中介绍了全球应用的多平台地图框架mapbox在Android端的集成步骤, 以及Android的地图应用新视界--m...
  • u011200604
  • u011200604
  • 2016年07月12日 23:33
  • 8648

Unity如何利用Mapbox在游戏中实现真实地图?

原文网址:http://www.manew.com/thread-106602-1-1.html --------------------------------------------------...
  • qq_36754021
  • qq_36754021
  • 2017年08月10日 09:23
  • 123

unity技术贴,包括地形构建、真实地行,遥感影像 、十字树制作、天空盒加载、角色控制器、树木、草地、河流湖泊制作、3dmax建筑制作,特效制作等等

  • 2016年06月06日 10:58
  • 14.13MB
  • 下载

Unity3D真实地形提取插件

  • 2015年05月09日 19:02
  • 16.62MB
  • 下载

用Unity 3D生成真实地形

如何在Unity 3D中生成真实的地形?这里为你解决这一问题!!
  • lingbaoer1234
  • lingbaoer1234
  • 2015年04月24日 09:32
  • 9250

用Unity 3D生成真实地形

本方法是在http://blog.csdn.net/lingbaoer1234/article/details/45242371基础上进行操作,具体如下: Unity3D手册中介绍了两种地形制作...
  • qq_35040828
  • qq_35040828
  • 2017年08月04日 11:03
  • 301

Unity3d 真实地形仿真教程

Unity3d 真实地形仿真是通过获取地球地理信息数据后制作为高度图,然后将高度图导入到Unity3d中进行地形的仿真。下面贴出了本人解决方式与大家共享。...
  • kakala12
  • kakala12
  • 2014年12月24日 22:11
  • 1765

用Unity 3D生成真实地形(一)

Unity3D手册中介绍了两种地形制作方法: 1、在SceneView中使用height tools直接绘制; 2、使用外部工具制作的heightmaps; 生成真实地形,需要用到heigh...
  • qq_35040828
  • qq_35040828
  • 2017年07月29日 15:41
  • 134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mapbox for unity 再现真实地图
举报原因:
原因补充:

(最多只允许输入30个字)