开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1904

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 1722|回复: 33

[蛮牛干货] Unity如何利用Mapbox在游戏中实现真实地图?

[复制链接]  [移动端链接]
排名
3
昨日变化

5498

主题

5960

帖子

2万

积分

Rank: 16

UID
1231
好友
183
蛮牛币
2965
威望
30
注册时间
2013-7-29
在线时间
2689 小时
最后登录
2017-10-18

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

发表于 2017-8-9 10:09:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
  说到游戏中的真实地图,大家脑海中浮现的第一款游戏应该都是火爆全球的AR游戏《Pokémon Go》吧。今天这篇教程将为大家介绍Mapbox Unity SDK,能够在游戏中获取真实的世界地图,或是根据真实地图生成游戏中的体素世界。这些地图数据可以预先存储在游戏或应用中,也可以在运行时动态生成。
  设置帐号
  访问Mapbox官网下载Mapbox Unity SDK,然后将下载的.assetpackage文件导入项目。在使用Mapbox插件之前,需要先在Mapbox官网申请API Key。创建Mapbox帐号后,打开API acess tokens页面,新建一个token。

1.jpg

  然后在Unity编辑器中依次点击菜单项Mapbox - Configure Access打开Mapbox界面:

2.jpg

  输入Access Token:

3.jpg

  如果Token生效,编辑器会出现如上图的“TokenValid”提示。
  示例场景
  Mapbox插件提供了大量示例场景,其中最简单的示例场景Slippy,也是游戏项目较为常用的功能案例。它展示了地图从选中的某点开始不断向外延伸,根据视野范围的变化来实时加载新的地形,这也是游戏中追踪某个对象的真实地理位置时常用的功能。

4.jpg

  此示例使用了3D网格,与Unity自带的3D地形无异。场景中的Map游戏对象带有Abstract Map脚本,可以在此脚本中设置地形的起始位置的经纬度与延展范围。

5.jpg

  Abstract Map脚本的Map Visualization字段用于定义地图外观。Mapbox插件已经提供了一些不同的视觉效果,但您也可以选择自定义或重新创建地形。

6.jpg

  将Map Visualization字段设为PoiDemoVisualization,并将起始位置改为上海,效果如下:

7.gif

  如果想生成《我的世界》那样的体素地图,可以打开VoxelWorld场景看看其设置。效果如下:

8.jpg

  自定义地图
  除了Mapbox提供的示例地图外观,还可以自定义想显示的地图信息。下面就为大家介绍自定义地图的步骤。
  首先新建文件夹“CityMap”,然后在项目视图选中该文件夹后单击右键,依次选择Create - Mapbox - MapVisualization新建可编程对象MapVisualizer,该对象将用作地图的根节点,来承载所有的地图层次。

9.jpg

  然后创建Terrain Factory,在“CityMap”目录下新建文件夹“CityTerrain”,然后在项目视图选中该文件夹后单击右键,依次选择Create - Mapbox - Factories - Terrain Factory新建可编程对象CityTerrain:

10.jpg

  在检视面板中选中CityMap对象,添加CityTerrain为其第一个Factory。


11.jpg

  可以在CityTerrain对象中设置高度缩放值,来改变建筑所显示的高度比例。

12.jpg

  温馨提示:如果不希望地图出现高光,可以新建材质后将其Smoothness改为0 ,然后替代CityTerrain对象所使用的材质。
  下面创建Map Image Factory。在“CityMap”目录下新建文件夹“CityImagery”,然后在项目视图选中该文件夹后单击右键,依次选择Create - Mapbox - Factories - Map Image Factory新建可编程对象 CityImagery。

13.jpg

  选中CityImagery对象,将其Style设为Dark。

14.jpg

  然后选中CityMap对象,将CityImagery添加为其第二个Factory。

15.jpg

  新建场景后创建游戏对象Map,并为其绑定AbstractMap脚本。

16.jpg

  将脚本的MapVisualizer属性设为CityMap,Zoom设为16。然后为Map对象添加RangeTileProvider脚本,将其范围设为(1, 1, 1, 1),并将RangeTileProvider脚本赋给AbstractMap的Tile Provider字段。如下:

17.jpg

  其中Range表示以设置的经纬度为中心,Mapbox向中心的4个方向所生成的地块数量,默认为0。到此一个最简单的自定义地图就完成了,点击运行可以看到生成的地图外观如下:

18.jpg

  还可以在此基础上添加更多层,来放置3D建筑、道路纹理等内容。
  总结
  关于在Unity中通过Mapbox来为游戏添加真实世界地图的内容就分享到这里,本文仅简单介绍了Mapbox Unity SDK的一小部分功能,感兴趣的朋友可以去下载试用并更深入地探索。
来源:Unity官方中文论坛


跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
回复

使用道具 举报

3偶尔光临
293/300
排名
7825
昨日变化
11

0

主题

112

帖子

293

积分

Rank: 3Rank: 3Rank: 3

UID
224879
好友
0
蛮牛币
463
威望
0
注册时间
2017-6-2
在线时间
65 小时
最后登录
2017-10-18
发表于 2017-8-9 10:27:52 | 显示全部楼层
谢谢分享。。。。。

回复

使用道具 举报

5熟悉之中
750/1000
排名
6036
昨日变化
4

1

主题

242

帖子

750

积分

Rank: 5Rank: 5

UID
24956
好友
1
蛮牛币
1632
威望
0
注册时间
2014-5-14
在线时间
339 小时
最后登录
2017-10-17

VIP

发表于 2017-8-9 10:54:55 | 显示全部楼层
[蛮牛干货] Unity如何利用Mapbox在游戏中实现真实地图?

回复 支持 反对

使用道具 举报

7日久生情
1850/5000
排名
1283
昨日变化
2

1

主题

295

帖子

1850

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
79551
好友
0
蛮牛币
4289
威望
0
注册时间
2015-3-13
在线时间
814 小时
最后登录
2017-10-18
发表于 2017-8-9 11:18:20 | 显示全部楼层
6666666666666666666666666

回复 支持 反对

使用道具 举报

7日久生情
3609/5000
排名
118
昨日变化

1

主题

434

帖子

3609

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
13097
好友
1
蛮牛币
4617
威望
0
注册时间
2014-1-21
在线时间
1220 小时
最后登录
2017-10-18

活力之星

发表于 2017-8-9 11:35:52 | 显示全部楼层
这个强大了,感谢分享

回复 支持 反对

使用道具 举报

5熟悉之中
642/1000
排名
3341
昨日变化
6

0

主题

137

帖子

642

积分

Rank: 5Rank: 5

UID
147717
好友
0
蛮牛币
734
威望
0
注册时间
2016-5-5
在线时间
165 小时
最后登录
2017-10-18
发表于 2017-8-9 12:53:38 | 显示全部楼层
谢谢分享。。。。。

回复

使用道具 举报

7日久生情
1870/5000
排名
6543
昨日变化
68

4

主题

1530

帖子

1870

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209186
好友
0
蛮牛币
2458
威望
0
注册时间
2017-3-1
在线时间
184 小时
最后登录
2017-10-18
发表于 2017-8-9 13:28:01 | 显示全部楼层
学习了,谢谢分享

回复

使用道具 举报

4四处流浪
366/500
排名
7110
昨日变化
153

1

主题

117

帖子

366

积分

Rank: 4

UID
233944
好友
0
蛮牛币
750
威望
0
注册时间
2017-7-24
在线时间
114 小时
最后登录
2017-10-18
发表于 2017-8-9 14:17:05 | 显示全部楼层
学习了,谢谢分享

回复

使用道具 举报

4四处流浪
386/500
排名
9332
昨日变化
12

0

主题

213

帖子

386

积分

Rank: 4

UID
146677
好友
7
蛮牛币
1950
威望
0
注册时间
2016-4-25
在线时间
87 小时
最后登录
2017-9-29
QQ
发表于 2017-8-9 14:38:12 | 显示全部楼层
谢谢分享,很棒的东西

回复 支持 反对

使用道具 举报

7日久生情
3499/5000
排名
121
昨日变化

7

主题

243

帖子

3499

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62
好友
9
蛮牛币
8038
威望
0
注册时间
2013-5-29
在线时间
1264 小时
最后登录
2017-10-18

社区QQ达人活力之星

发表于 2017-8-9 15:02:56 | 显示全部楼层
中国能用不

回复

使用道具 举报

5熟悉之中
749/1000
排名
4042
昨日变化
19

18

主题

159

帖子

749

积分

Rank: 5Rank: 5

UID
89579
好友
3
蛮牛币
1578
威望
0
注册时间
2015-4-5
在线时间
296 小时
最后登录
2017-10-18
发表于 2017-8-9 16:13:22 | 显示全部楼层
完全看不懂

回复

使用道具 举报

7日久生情
1565/5000
排名
1976
昨日变化
1

11

主题

346

帖子

1565

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148830
好友
3
蛮牛币
2411
威望
0
注册时间
2016-5-17
在线时间
650 小时
最后登录
2017-10-18
发表于 2017-8-9 18:14:38 | 显示全部楼层
可否提供一下MapBox的SDK   

我一个人走走停停冷暖自知自始自终自给
回复 支持 反对

使用道具 举报

7日久生情
1640/5000
排名
1924
昨日变化
6

11

主题

605

帖子

1640

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
169262
好友
2
蛮牛币
1620
威望
0
注册时间
2016-9-19
在线时间
458 小时
最后登录
2017-10-18
发表于 2017-8-10 09:02:45 | 显示全部楼层
感谢分享        
[发帖际遇]: 梦境 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
562/1000
排名
5490
昨日变化
35

0

主题

221

帖子

562

积分

Rank: 5Rank: 5

UID
220310
好友
0
蛮牛币
886
威望
0
注册时间
2017-5-2
在线时间
147 小时
最后登录
2017-10-18
发表于 2017-8-10 09:08:05 | 显示全部楼层
有空可以试一下 谢谢
[发帖际遇]: 一个袋子砸在了 Layao 头上,Layao 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1294/1500
排名
2089
昨日变化
11

0

主题

436

帖子

1294

积分

Rank: 6Rank: 6Rank: 6

UID
164723
好友
0
蛮牛币
2614
威望
0
注册时间
2016-8-29
在线时间
326 小时
最后登录
2017-10-18
发表于 2017-8-10 09:39:20 | 显示全部楼层
666666666666666666

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表