您的位置:首页 > 移动开发 > Unity3D

【Unity3D_常用模块】 MiniMap 小地图

2015-09-16 10:50 615 查看
模块功能: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MiniMap 小地图