您当前的位置:首页 VR开发 Unity 正文

U3D中小地图的实现方法

查看: 3306| 评论: 0 2016-12-21 05:41 PM| 发布者: PeckBang |原作者: 本庸|来自: CSDN

小地图的实现方式一般有两种,使用RenderTextrue 来实现  ,或者通过计算来实现。这里我们说说第一种方法。

准备工作:1张圆形图片、一个遮罩Shader。下面空白是一张图片。



[代码]:

Shader "Custom/Mask" {  
    Properties {  
        _MainTex ("Main Texture", 2D) = "white" {}  
        _Mask ("Mask Texture", 2D) = "white" {}  
    }  
    SubShader {  
      
        Tags { "Queue" = "Transparent" }  
        Lighting On  
        ZWrite Off  
        Blend SrcAlpha OneMinusSrcAlpha  
  
        Pass  
        {  
            SetTexture [_Mask] {combine texture}  
            SetTexture [_MainTex] {combine texture , previous}  
        }  
    }   
}  

接下来我们创建场景。一个地面,和几个胶囊作为人物。


在人物上方添加一个Quad,修改Shader 为Transparent/Diffuse ,并添加一个图片作为小地图人物显示的图片。


调整这些贴片大小为原来的3倍,修改这些贴片的Layer为Icon ,修改主摄像机的显示,不能显示这些图标。


接下来创建显示小地图的摄像机,修改他俯视这个场景,参数Projection 修改为Orthographic ,修改Size到合适的位置,修改CullingMask 让这个摄像机能观察Icon .

接下来创建一个RenderTextrue,命名为MiniMap ,指定小地图摄像机的TargetTextrue 为MiniMap.

再场景一个材质,修改它的Shader 为之前提供的Shader 。MainTexture 为上面的MiniMap,MaskTextrue 为前面提供的圆形图片。

使用NGUI 创建一个UITexture,将材质拖上去。


那么小地图就实现了


最终的效果如下图。修改地面的图片可以变得更好。

52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 0 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-22 08:14 PM

返回顶部