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

扫一扫,访问微社区

开发者专栏

关注:1810

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

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

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

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

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

5312

主题

5761

帖子

2万

积分

Rank: 16

UID
1231
好友
183
蛮牛币
1437
威望
30
注册时间
2013-7-29
在线时间
2524 小时
最后登录
2017-8-17

社区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!爱你们么么哒~
回复

使用道具 举报

2初来乍到
142/150
排名
13509
昨日变化
334

0

主题

69

帖子

142

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

5熟悉之中
692/1000
排名
6392
昨日变化
5

1

主题

227

帖子

692

积分

Rank: 5Rank: 5

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

VIP

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

回复 支持 反对

使用道具 举报

7日久生情
1727/5000
排名
1416
昨日变化
1

1

主题

285

帖子

1727

积分

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

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

回复 支持 反对

使用道具 举报

7日久生情
3426/5000
排名
132
昨日变化

1

主题

424

帖子

3426

积分

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

UID
13097
好友
1
蛮牛币
4750
威望
0
注册时间
2014-1-21
在线时间
1147 小时
最后登录
2017-8-17

活力之星

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

回复 支持 反对

使用道具 举报

5熟悉之中
597/1000
排名
3420
昨日变化
2

0

主题

121

帖子

597

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

5熟悉之中
872/1000
排名
9626
昨日变化
141

4

主题

690

帖子

872

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
13853
昨日变化
377

1

主题

43

帖子

99

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

4四处流浪
365/500
排名
9499
昨日变化
5

0

主题

209

帖子

365

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

7日久生情
3462/5000
排名
111
昨日变化

7

主题

242

帖子

3462

积分

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

UID
62
好友
8
蛮牛币
8036
威望
0
注册时间
2013-5-29
在线时间
1254 小时
最后登录
2017-8-17

社区QQ达人活力之星

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

回复

使用道具 举报

4四处流浪
492/500
排名
6218
昨日变化
53

16

主题

130

帖子

492

积分

Rank: 4

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

回复

使用道具 举报

6蛮牛粉丝
1321/1500
排名
2267
昨日变化
5

11

主题

298

帖子

1321

积分

Rank: 6Rank: 6Rank: 6

UID
148830
好友
2
蛮牛币
1986
威望
0
注册时间
2016-5-17
在线时间
534 小时
最后登录
2017-8-17

迈向小康

发表于 2017-8-9 18:14:38 | 显示全部楼层
可否提供一下MapBox的SDK   

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

使用道具 举报

6蛮牛粉丝
1443/1500
排名
2350
昨日变化
7

9

主题

560

帖子

1443

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

3偶尔光临
233/300
排名
7711
昨日变化
102

0

主题

36

帖子

233

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1121/1500
排名
2420
昨日变化
8

0

主题

385

帖子

1121

积分

Rank: 6Rank: 6Rank: 6

UID
164723
好友
0
蛮牛币
2266
威望
0
注册时间
2016-8-29
在线时间
288 小时
最后登录
2017-8-17
发表于 7 天前 | 显示全部楼层
666666666666666666

回复 支持 反对

使用道具 举报

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

本版积分规则

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