【Unity3D_常用模块】 MiniMap 小地图

来源:互联网 发布:飞鸽翻墙软件下载 编辑:程序博客网 时间:2024/06/16 06:34
模块功能:MiniMap小地图,主要用于各类RPG游戏的预览地图。
所需资源:
1.maskShader.shader:用于做Mask遮罩(也可用uGUI自带的mask,但是边缘会出现锯齿,故放弃,如若有想看效果比较效果的网友,自行尝试,这里就不做演示了)
2.原理:用一个Camera跟随player,实时照射Player为中心的画面,渲染到rendererTexture上,再用maskShader对其进行遮罩,最终通过RawImage显示到画面上。


操作步骤:
步骤一:添加Layer层级。

Map:地图层级,可用于存放地图,背景等。
MapFlag,存放NPC,已经玩家角色的图标,标示。

步骤二:.制作界面对象.


1:Canvas->MiniMap(RawImage):用于显示MiniMap地图
2:BackGruond(SpriteRenderer):游戏地图背景,游戏背景
3:Player(SpriteRenderer):玩家角色()
4:Player->CullingMaskCamera(Camera):跟随玩家,只渲染玩家标示以及地图,地图背景等。
5:Player->Flag(SpriteRenderer):玩家图标,标示。

步骤三:资源制作:
1:创建Render Texture,命名为:MiniMap
2:创建Material,命名为Mat_CullingMask,并选用UIEx->Default-Mask这个shader,再将遮罩资源(Mask.png)拖拽至MaskTexture这个参数上。




步骤四:参数设置:
1:BackGround:选中BackGround,拖拽背景资源infiniteBg至BackGround的SpriteRenderer第一个参数上,再Transform->Position的参数设置为0,0,0


2:Main Camera:

主要操作这4个参数:
1.Clear Flags:选中Depth only
2.Clling Mask:取消渲染MapFlag层

3.设置projection的参数为Orthographic正交模式
4.Size:设置大小为2.4

步骤五:设置MiniMap,选中Canvas->MiniMap,将步骤三中制作的资源拖拽到相应参数上,将MiniMap移至右上角


步骤六:选中Player->CullingMaskCamera

1.ClearFlags:Depth only
2.CullingMask:只渲染Map,MapFlag这两个层级

3.拖拽步骤二中创建的资源MiniMap至TargetTexture参数上
4.Size设置为1
5.最后设置Transform->Position 的参数为0,0,-10

画面效果已经呈现出来了。。来来来,继续


最后一步:
1.选中Player,对其参数进行调整,选中Sprite,目前选中Knob测试,颜色任意


1.0选中Player->Flag,对其参数进行调整,选中Sprite,目前选中Knob测试,颜色任意,设置layer层级为MapFlag,Transform->Position参数:0,0,0


目前为止,功能已经完成,PlayerController就不写了,可以通过拖拽着Player这个GameObject在屏幕中任意移动模拟PlayerController的操作,就可以在右上
角看到MiniMap的效果了。


项目下载地址:
链接:http://pan.baidu.com/s/1sjLylu1
密码:j063

 

/*****************************************************************************************************************************************************************************/
若有疑问,请直接评论。

备注:该教程是在另一个帖子上看到的。在我自己测试完成时候,顺手关了,忘记记录下网址,深感内疚。

再次申明:此贴转载非原创,望原作者海涵。

1.创建RenderTexture
0 0