本节书摘来自华章社区《Unity开发实战》一书中的第2章,第2.9节显示迷你地图,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看
2.9 显示迷你地图
在很多游戏中,给场景提供更宽的视角对于导航和信息来说,其好处是无法估量的。在第一人称或第三人称模式下,迷你地图非常适合作为玩家的额外视角。
2.9.1 准备工作
示例代码中名为“0423_02_08”的文件夹中有一个名为miniMap的包需要导入,此包中有一个在简单迷宫中的第三人称控制器,以及一个名为marker的纹理。
2.9.2 操作步骤
请按照下面的步骤创建迷你地图:
1)导入miniMap Unity包,打开02_08文件夹中名为thirdPerson的场景。
2)选择3rd Person Controller(第三人称控制器),在Inspector视图中,把它添加到名为NoMap的新图层中:
5)保存脚本,并附加到Map Camera中。然后,在Inspector视图中,修改Generate Map组件的值,具体设置如下所示:
Target(目标): 3rd Person Controller(第三人称控制器)
Marker(标记): marker
Cam Height(摄像头高度): 6
Cam Distance(摄像头距离): 10
Horizontal Alignment(横向对齐): Right(右对齐)
Vertical Alignment(纵向对齐): Bottom(底部对齐)
Dimensions In(单位): screen_percentage(屏幕百分比)
XOffset(X轴偏移)和 YOffset(Y轴偏移): 0
Width(宽度): 25
Height(高度): 25
2.9.3 实现原理
脚本做了两件事:通过期望的位置和维度设置视角,并调整摄像机的变换设置,让它从俯视透角(top-view perspective)跟着主角色。另外,为了让地图看起来更清楚,当显示角色应该在哪里的标记时隐藏了主角色。
2.9.4 更多内容
如果还想练习更多迷你地图的例子,可以参考下面的内容。
- 使用渲染纹理(仅限专业版)
如果使用的是专业版,可以始终使用Render Texture(渲染纹理)并用GUI.DrawTexture 或 Graphics.DrawTexture显示地图。关于Render Texture的更多介绍请参考Unity的文档 http://docs.unity3d.com/Documentation/Components/class-RenderTexture.html。 - 适配迷你地图到其他样式
可以很容易修改本节内容以实现竞速游戏中地图的俯视图或等距视图。只需要手动定位摄像机并阻止其跟随角色。另外,别忘了给所有赛车都加一个在地图上的显示标记。