unity 2D 透明遮罩 简单实现
2015-02-18 23:40
866 查看
大致需要用到的东西: shader 材质 深度摄像机
unity实现2D遮罩找了许多的解决方法,这个是我采取的一种方法,比较便捷,但不一定是最好的
主要想实现的效果是这样的,小偷藏在窗户的后面,并且有移动的动画,需要遮罩除去其在窗户之外的部分
首先新建一个Shader,代码如下,很短
Shader "Depth Mask" {
SubShader{
ColorMask 0
Pass {}
}
}
再新建一个材质
选择shader为刚才新建的DepthMask
我们新建一个空物体,将小偷设为其子物体,并且新建两个cube物体。将刚才的材质添加到这个cube物体上(这里用到了3D的物体,对于2D游戏来说有点怪怪的,但是sprite不能加刚才的材质)
那么在实际的游戏场景中是怎么样的呢?
可以看到其将整个摄像机中渲染的物体都遮住了,露出了后面的天空盒
所以此时需要单独为遮罩的物体建立一个深度摄像机
首先先新建一个层thief,将cube和thief的sprite都加入这个层
新建摄像机参数如下
不要忘记在main camera中的cullingMash中去除thief
然后别忘记thief前面窗的图也要单独用一个深度摄像机
主要是改clearFlags和cullingMask,注意Depth这个属性,值越大的就渲染在越前面
效果如下:
最终效果
unity实现2D遮罩找了许多的解决方法,这个是我采取的一种方法,比较便捷,但不一定是最好的
主要想实现的效果是这样的,小偷藏在窗户的后面,并且有移动的动画,需要遮罩除去其在窗户之外的部分
首先新建一个Shader,代码如下,很短
Shader "Depth Mask" {
SubShader{
ColorMask 0
Pass {}
}
}
再新建一个材质
选择shader为刚才新建的DepthMask
我们新建一个空物体,将小偷设为其子物体,并且新建两个cube物体。将刚才的材质添加到这个cube物体上(这里用到了3D的物体,对于2D游戏来说有点怪怪的,但是sprite不能加刚才的材质)
那么在实际的游戏场景中是怎么样的呢?
可以看到其将整个摄像机中渲染的物体都遮住了,露出了后面的天空盒
所以此时需要单独为遮罩的物体建立一个深度摄像机
首先先新建一个层thief,将cube和thief的sprite都加入这个层
新建摄像机参数如下
不要忘记在main camera中的cullingMash中去除thief
然后别忘记thief前面窗的图也要单独用一个深度摄像机
主要是改clearFlags和cullingMask,注意Depth这个属性,值越大的就渲染在越前面
效果如下:
最终效果
相关文章推荐
- unity 2D 透明遮罩 简单实现物体一半透明
- 一个简单方法实现bmp背景透明
- MFC对话框简单实现窗口全透明的方法
- visio实现背景透明图片的最简单方法
- Android透明无边框圆形进度条之最简单实现
- JS+CSS简单实现DIV遮罩层显示隐藏
- 一种简单的方法在程序中实现透明效果(JAVA)
- C#实现Winform自定义半透明遮罩层
- 数据访问帮助类-Unity简单实现
- [Direct2D]不透明遮罩操作
- js简单实现div遮罩层
- C#简单实现窗口全透明
- spring.net、castle windsor、unity实现aop、ioc的方式和简单区别
- 全屏透明遮罩(lightBox)简单实例
- js实现IE6下png背景透明,超简单,超牛!
- MFC透明控件的超级简单实现--发布日期:2008-05-14 00:44
- 一个div遮罩的简单实现
- 【Android2D游戏开发十六】(上文之触摸屏手势)详解Android Gesture 手势操作!利用手势实现一个简单切换图片的功能!
- Android透明无边框圆形进度条之最简单实现
- Android透明无边框圆形进度条之最简单实现