【Unity学习历程之四】带敌我标识的圆形小地图的一种实现方式

前言

  小地图是在游戏中很常见的一种工具,这次的练手项目中就有这一项需求的实现,就自己思考了一下实现方法,初想到的实现方式的是创建第二相机绘制高空俯视图挂载到GUI的角落,但是在实现挂载这个地方卡住了,于是在经过一番查找之后又get到了一些新的知识点,并且找到了解决方法,在这里稍作记录。




实现方法


相机的设置

  如前边所说,首先我们的第一步是再创建一个相机,
  给它改名叫做MiniMapCamera方便与主相机进行区分,
  然后将它放到操作对象的正上空,并将其正前方旋转至沿Y轴朝下的俯视视角
Camera
然后我们会得到这样的画面:
Cmera俯视图这就是小地图的雏形了。

那么,接下来要做的就是将它的画面缩小放到屏幕的角落了,可以通过GUI来创建它的容器


  创建一个Canvas,然后在其上再创建一个Panel,
缩小拖放到合适的位置

MiniMap好的,效果不错,把它改名为MiniMap,来作为放置我们小地图的区域,记得把Color面板中的透明度设为0


接下来就是重头戏了——把相机的画面放到这个区域中:

  简单的来说,unity相机中的成像原理就是将它正面所见的场景转成一张图片呈现在画面上,然后进行不断的刷新,了解到这里以后,实现的思路就出现了,其实就是将一个图片显示在一个物体上。

  在Assets中创建一个新的Render Texture文件,
并改名叫MinimapRenderTexture

得到如下:

在这里插入图片描述
点击之前创建的第二相机MiniMapCamera,
首先将它的Camera组件中的Target Texture项设为MiniMapRenderTexture

回到Hierarchy窗口,
在MiniMap下创建一个新的Raw Image对象,
名字改为MiniMapContent,
大小调整至与MiniMap重合,
再把它的Texture选择为MiniMapRenderTexture

得到如下:
MiniMap Version0.1
可以!和设想很接近了,但还是有些不对,我们想要的是一个圆形的小地图,来继续调整。


  同样,在MiniMap下再创建一个Image对象,
它的大小也同样与MiniMap重合,
将它改名为MiniMapMask,来作为我们的小地图的遮罩

将MiniMapMask的Source Image设置为任意一张实心圆形图片(注意需要是背景透明的),
然后将MiniMapContent放到MiniMapMask之下成为它的子物体,
并给MiniMapMask加上一个Mask组件

然后小地图就会变成这个样子:

MiniMap Version0.2
很棒!小地图的基本框架已经出来了,接下来就是添加敌我标识了。




添加敌我标识

  这里简单地用红色圆和绿色圆来表示敌我

  首先在地图上再添加以一个Cube作为Enemy,
然后将红色的圆以2D的Sprite对象的形式加到Scene中,
并改名为EnemyIcon,
然后为了简单地实现跟随,我们可以直接把EnemyIcon设为Enemy的子物体,
同时把EnemyIcon的Position设为(0,2,0),
对玩家Cube也做出同样的处理

MiniMap Version0.3
好像标识有点太大了,那么再对相机位置和图片大小进行一下调整:

MiniMap Version0.4

   已经很接近设想了,但是不仅仅在小地图中,在主相机的画面里边我们也能看到标识,然后在小地图中我们还能看到原对象的实体,这显然不是我们想要的效果,为了解决这些问题,我们还需要对相机的设定和对象的Layer层做出修改。


   添加一个标识用的Layer层,
名字是MiniMap,
同时将EnemyIcon和PlayerIcon都放入其中。

   添加一个玩家和敌人用的Layer层,
名字是Creature,
把玩家和敌人都放入此层

然后对相机的Camera组件进行修改,
将主相机的Culling Mask中的MiniMap层取消勾选,
把MiniMap相机的Culling Mask中的Creature层取消勾选

MiniMap Versin1.0
很好,大功告成!一个简单的圆形带敌我标识的小地图实现了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值