使用Unity快速实现全息瞄准镜效果
先看最终效果:
最近在做项目小地图的时候,使用到了UI层的Mask
起初想使用SpriteRenderer控制我的一个图片直接变色,但是发现了一个Bug,在Mask之内的所有SpriteRenderer下的Sprite,都是原来的基础颜色而非我想要的其他颜色,效果如图:
可以看到的 我是以最大的外面的圆作为Mask的大小,我要变色的SpriteRenderer是其子物体。
因为一开始我的圆是黑的,我想着会不会是被遮挡,于是以改变SpriteRenderer的Z轴位置,发现了全息瞄准镜的实现方法:
可以将Mask的透明度设置为1,这样不至于让子物体都看不见,而后自己也会比较隐藏,效果如上图
将子物体,我们可以换成十字瞄准等图片,然后改变到我们需要的世界坐标,比如全息镜的瞄准距离,相应改变其在Mask之下的Z轴位置。
其中miniMap_Parent下存放我们的全息瞄准中心的图片,改变就是改变这个父物体。