Unity教程之-Unity3d游戏开发之小地图的再实现

 

本篇教程,我们再来学习下unity3d中小地图的实现,在我之前的文章《Unity3D游戏开发之小地图的实现》一文中,我为大家讲解了基于OnGUI()方法绘制贴图实现小地图的方法。那么,今天呢,博主再来为大家分享一种实现小地图的方法。在正式开始今天的文章之前,我们先来了解下Unity3D中的相机吧。在Unity3D中,相机是一个能够为玩家捕获并显示游戏世界的设备。通过操纵相机,我们可以使得我们的游戏场景以更加真实和独特的方式显示出来。在Unity3D中默认有一个主相机Main Camera用来显示我们设计的游戏场景,其实呢,在一个游戏场景中我们是可以设置多个相机对象的,而且它们可以被设置为任意的渲染序列、任意的渲染部分和任意的渲染位置。下面我们来讲解一些比较重要的东西吧!

1、Clera  Flags:决定场景的哪个部分需要清除。当需要使用多个相机以显示不同的游戏元素时这是非常有用的。

2、Background Color:处于所有对象之后的背景颜色,设置此属性后,天空盒子(SkyBox)将失效。

3、Normalized View Port Rect:在屏幕坐标系下使用四个值来确定相机的哪些部分将显示在屏幕上。

4、Near Clip Plane:相对于相机昀近绘制点。

5、Far Clip Plane:相对于相机昀远的绘制点。

6、Field of view:沿着局部 Y轴的相机视角宽度。

7、Is orthographic:打开或关闭相机的景深效果

8、正交视大小(Orthographic size):在正交模式下的视口大小。

9、Depth:相机的绘制顺序,相当于ZIndex属性,具有较高深度的相机将绘制在较低深度相机的上面。

好了,有了上面的基础,我们就可以开始今天的正式内容了,如图是博主自己创建的一个游戏场景,游戏场景是在一个没有光照的黑暗的屋子里面,我们的游戏主角头顶上添加了一个点光源,所以当游戏主角运动的时候,其经过的场景会被主角头顶上的光源照亮,我们现在要做的就是为这个游戏场景添加一个小地图,以保证玩家在玩游戏的时候不会在黑暗的屋子里迷路。

好,现在我们开始来做小地图,我们在场景中添加一个Camera,然后设置其旋转角度使其垂直于XOZ平面,命名为TopCamera,这时候我们设置摄像机的投影方式为正交投影,相信根据前面提到的关于Camera的一些内容,大家已经猜到这个小地图的制作原理了,不错,这个小地图就是根据Normalized View Port Rect属性来制作的。我们可以自己调整Normalized View Port Rect的四个数值来让小地图在合适的位置显示合适的内容,下面是博主对TopCamera的一些设置数值,供大家参考:

那么这样,我们的小地图就做好了,我们一起来看看效果吧!图中红框表示出了游戏场景和地图中的相互对应关系。当我们移动人物的时候,地图上的角色位置会同步更新!今天的小地图没有写一行代码啊,这时多么给力的一件事情啊。哈哈