在3D游戏中常常使用小地图来显示自己角色所在的位置,之前项目遇到过用NGUI来制作一个简单的小地图的功能,尝试制作一个简单的小地图功能,怎样丰富小地图的功能这个就要自己去慢慢摸索咯~
用UGUI制作一个简单的小地图的思路有很多,这里简单介绍一下思路再大体弄一个小Demo出来。
方法一:
利用两个摄像机一个为角色的摄像机,另一个作为俯视全地图的摄像机,然后用RenderTextrue以及RawImage渲染到需要的位置,然后再角色摄像机上方在添加一个3D UI来指示角色所在位置(PS:也可以将指向放到UGUI上去,这种方法就需要将角色转动的偏向值传到指向的UI上)。
然后俯视摄像机跟随角色摄像机移动这样地图大体上实现出来了,但是要注意计算摄像机是否到了边距位置。虽然这种方法很简单,但是要用到两个摄像机以及实时渲染这一方面,这样就要考虑到内存问题,KGFMapSystem这个插件大体上也是用这种方式来制作小地图的。代码就自己去想想怎么写吧!大体的设置方向如图所示:
接下来说一说第二种方法
方法二:
这种方法是不采用两个摄像机的,直接用一张做好的图片代替实时渲染的摄像机的图片,然后通过计算模型与图片的比例来计算角色摄像机所在地图位置映射到小地图上对应的位置,相对第一种方法来说这种方式的小地图就较为繁琐。
这里我们要梳理一下需求:
1、要知道模型以及图片大小,用来计算比例。
2、通过角色位置,利用模型与图片的之间的比例,计算指标位置所在位置。
3、角色左右旋转的角度传到到UI指标的上来。
大体上也就是这两个功能,但是也有可能因为小地图过大需要重新计算它们之间的比例,因此我们根据项目需求来做。
这里只提供思路,大体上的思路就有这些,由于时间问题我并没有写代码出来(PS:我也有可能找个时间去写出来,也有可能不写~一切看心情来定~)
——Begonia