本节只讲如何制作一个小地图——将场景显示在小地图上。
要显示一个场景首先得有个场景。然后我噼里啪啦新建了一个新场景。如下图:
接着要做的是新建一个相机命名为MiniMapCamera,看名字就知道他是用来投射小地图的相机。小地图的原理就是用一个相机把场景渲染出来,然后再呈现在屏幕上。
然后设定相机的culling mask为Map。当然也可以设定为其他的,这里只是举例子。这一步的功能是让相机只渲染该层的东西,其他的都不会渲染到。因为现在没有Map这个层所以相机什么都渲染不到。如下图:
接着就把要渲染的场景layer设置为Map。之后就会看到MiniMapCamera预览里出现了画面。如下图
接下来要在场景中进行显示MiniMapCamera的画面。新建一个RawImage图片,放到右上角。
在project里新建一个render texture,命名为MinimapCamera。然后将它拖拽到场景中的MinimapCamera小相机的Target texture位置,以及拖拽到RawImage图片的Texture里。如图:
这个时候就会看到场景中的RawImage图片将小地图的内容展现了出来。这样就实现了小地图的初步显示。如图:
至此我们的小地图显示问题就解决了。
接下来来对小地图进行美化一下。因为从上图中可看出现在的小地图的UI是没有任何边框的,这会导致与场景物体在视觉上混淆,降低用户体验。
接下来我给小地图加入一个边框MinimapUI。
边框要求中间透明。因为这个地方是用来显示地图的。如下:
这这里我把之后要加入的功能UI也全部加入进来。最终小地图的UI在场景中显示和结构如下:
MinimapMask是MinimapContent的父物体。MinimapContent是刚才用来渲染的RawImage图片,也就是真正的小地图显示的UI。
MinimapUI是边框,上面讲过了。
+-号都是对应图中的图标,用来点击放大/缩小地图的显示。
maxMap对应图中的地球图标,用来点击切换到大地图。
playerIcon是图中中心的方向箭头图标,用来显示主角的位置。
这样就将美化工作也完成了。如图:
转载:https://blog.csdn.net/alayeshi/article/details/115914212