《Unity开发实战》——2.9节显示迷你地图

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 更多内容
如果还想练习更多迷你地图的例子,可以参考下面的内容。

  1. 使用渲染纹理(仅限专业版)
    如果使用的是专业版,可以始终使用Render Texture(渲染纹理)并用GUI.DrawTexture 或 Graphics.DrawTexture显示地图。关于Render Texture的更多介绍请参考Unity的文档 http://docs.unity3d.com/Documentation/Components/class-RenderTexture.html
  2. 适配迷你地图到其他样式
    可以很容易修改本节内容以实现竞速游戏中地图的俯视图或等距视图。只需要手动定位摄像机并阻止其跟随角色。另外,别忘了给所有赛车都加一个在地图上的显示标记。
时间: 2024-12-27 09:08:55

《Unity开发实战》——2.9节显示迷你地图的相关文章

《Unity开发实战》——导读

目 录 前 言 第1章 Unity 4.X 入门1.1 引言1.2 安装Unity 4.X1.3 设置首选项1.4 了解和优化用户界面1.5 把Unity中创建的资源另存为Prefab1.6 了解Unity中的Content1.7 导入自己的Content1.8 导入Unity的包到项目中1.9 导入自定义包到项目中1.10 从项目中导出自定义包1.11 添加自定义包到Unity的包快捷列表中1.12 使用项目浏览视图 第2章 使用摄像机2.1 引言2.2 创建画中画效果2.3 在不同摄像机之间

《Unity开发实战》——1.3节设置首选项

1.3 设置首选项对有些人来说,将编辑器设置成自己喜欢的样子可能没必要.但是这样能加快开发速度,并且能让Unity用起来更顺手.本节将介绍如何将某些设置项调整成自己的首选项. 1.3.1 操作步骤请按照下面的步骤设置首选项:1)在Unity编辑器中,在菜单上选择Edit(编辑)| Preference(首选项设置)(如果你用的是Mac系统,则是Unity | Preference(首选项设置)).2)当Preference 窗口显示出来后,注意窗口中有几部分:General(通用).Extern

《Unity开发实战》——2.4节自定义镜头光晕效果

2.4 自定义镜头光晕效果 过去15年里,在户外环境玩过游戏的任何玩家都知道:镜头光晕(lens flare)效果用于模拟明亮的光照穿透玩家的视野.虽然这个技术现在已经用滥了,但仍然出现在各类游戏中.本节将练习创建镜头光晕效果. 2.4.1 准备工作 强烈建议读者用图片编辑器(Adobe Photoshop或GIMP)打开图片.示例代码中的0423_02_03文件夹中有本节需要用到的镜头纹理(lens texture)的源代码. 2.4.2 操作步骤 请按照下面的步骤创建一个新的镜头光晕纹理并应

《Unity开发实战》——3.5节创建透明纹理贴图

3.5 创建透明纹理贴图如果想让玩家的视线穿透一个物体,则需要透明或半透明的材质.塑料薄膜.剪贴画.网格等人工产品是可以用透明纹理贴图制作的. 3.5.1 准备工作本节会创建一个材质来模拟塑料薄膜,选它的主要原因是这种材质允许我们使用全透明制作边框的rounded borders,也可以使用半透明显示薄膜(film)本身.本节其余部分假设读者已经能够使用图片编辑器创建图片,比如一张有斜面的圆角矩形图片.如果不会操作,随时使用示例代码中名为"0423_03_04"的文件夹中的准备材料.

《Unity开发实战》——3.4节创建高光纹理贴图

3.4 创建高光纹理贴图有些表面可能既有光滑的区域,又有粗糙的区域,为了达到这个效果,可以使用高光贴图(specular maps). 3.4.1 准备工作为了便于讲解,本节将创建一个生锈的金属材质来演示specular属性如何增强现实.如果读者还没有用于生成高光材质的基础纹理,示例代码中名为"0423_03_03"的文件夹中有本节需要用到的素材. 3.4.2 操作步骤请按照下面的步骤创建高光材质:1)创建一个新的材质,命名为:rustyMetalMaterial.2)选择此材质.在I

《Unity开发实战》——2.2节创建画中画效果

2.2 创建画中画效果在很多情况下,用多个视角显示是很有用的.比如,想显示不同地点同时发生的事件,或者多人对战(hot-seat multiplayer)游戏中为每个玩家显示单独的窗口,虽然也可以手动调整摄像机的Normalized Viewport Rect(标准化视口矩形)参数.本节包含一系列附加的首选项设置,使之独立于用户的显示器配置. 2.2.1 准备工作示例代码的0423_02_01_02的文件夹中有一个名为 basicLevel 的包是专为本节准备的,包中有一个场景. 2.2.2 操

《Unity开发实战》——2.5节从屏幕内容制作纹理

2.5 从屏幕内容制作纹理本节会介绍如何从屏幕内容制作纹理.想在游戏中实现图片库或在场景的最后显示重要时刻的快照时,该功能则非常有用(竞速游戏和特技游戏中用得比较多). 2.5.1 准备工作示例代码中名为"0423_02_04_05"的文件夹中有一个名为basicTerrain的包需要导入,此包中有一个基础地形和一个可以用鼠标旋转的摄像机. 2.5.2 操作步骤请按照下面的步骤从屏幕内容创建纹理:1)将上面提到的包导入到Unity中,打开02_04_05场景.2)在Project视图中

《Unity开发实战》——1.4节了解和优化用户界面

1.4 了解和优化用户界面游戏引擎,尤其是3D游戏引擎,用户在第一次使用时都会难于上手.尽管Unity已经清晰直观,界面友好,文档齐全,还是用本节来介绍一下如何操作用户界面(User Interface,UI)吧. 1.4.1 操作步骤先看一下Unity的用户界面:1)运行Unity.除非之前修改过,否则布局应该是宽模式(Wide Mode).通过菜单Window(窗口)| Layouts(布局)选择其他布局视图,例如 4 Split(4分窗口)或 2 by 3(两行三列),注意Views(视图

《Unity开发实战》——3.2节创建反射材质

3.2 创建反射材质金属.车漆,以及光滑的塑料表面都是一些很常见的需要反射的材质的例子.幸运的是,Unity内置了反射着色器(reflective shader),配置好以后就可以帮我们实现想要的效果了. 3.2.1 准备工作本节需要准备两个纹理贴图:Base Map(底图)和Reflection Cubemap(反射立方图).底图得是一张RGBA的图片,alpha通道可以把反射级别指定成从完全不透明(黑色)到完全反射(白色).反射立方体贴图可能是由六块纹理组成,或者像本节教程这样,只有一个单独