unity 2d遮挡透明显示整理
来源:互联网 发布:苹果 看书软件 编辑:程序博客网 时间:2024/05/21 16:57
unity 2d遮挡透明显示整理
游戏里面常常用到几种人物遮挡的透明显示 在这里也给大家整理一下几种的方式。
原图
图片中火枪手被黑色的图片遮挡了一边,现在想让它被遮挡的另一边也显示出来。
Shader "Custom/Mask VisibleColor" { Properties { _NotVisibleColor ("NotVisibleColor (RGB)", Color) = (0.3,0.3,0.3,1) _MainTex ("Base (RGB)", 2D) = "white" {} } SubShader { Tags { "Queue" = "Geometry+500" "RenderType"="Opaque" } LOD 200 Pass { ZTest Greater Lighting Off ZWrite Off Color [_NotVisibleColor] Blend SrcAlpha OneMinusSrcAlpha SetTexture [_MainTex] { ConstantColor [_NotVisibleColor] combine constant * texture } } Pass { ZTest LEqual Material { Diffuse (1,1,1,1) Ambient (1,1,1,1) } Lighting Off Blend SrcAlpha OneMinusSrcAlpha SetTexture [_MainTex] { combine texture } } } FallBack "Diffuse"}
效果图如下:
亦可用顶点渲染的方式
Shader "Custom/Mask Color" { Properties { _NotVisibleColor ("NotVisibleColor (RGB)", Color) = (0.3,0.3,0.3,1) _MainTex ("Back Texture", 2D) = "white" {} } SubShader { Tags { "Queue" = "Transparent" } Pass { Cull Off Lighting Off ZWrite Off Fog { Mode Off } Offset -1, -1 ZTest Greater Blend SrcAlpha OneMinusSrcAlpha CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata_vert { float4 vertex : POSITION; float4 texcoord : TEXCOORD0; }; uniform sampler2D _MainTex; uniform float4 _NotVisibleColor; struct v2f { float4 pos : SV_POSITION; float2 uv; }; v2f vert (appdata_vert v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); o.uv=v.texcoord; return o; } float4 frag (v2f i) : COLOR { half4 texcol = tex2D( _MainTex, i.uv ); if(texcol.a != 0){ texcol.xyzw = _NotVisibleColor.xyzw; } return texcol; } ENDCG } Pass { Cull Off Lighting Off ZWrite Off ZTest LEqual Fog { Mode Off } Offset -1, -1 ColorMask RGB AlphaTest Greater .01 Blend SrcAlpha OneMinusSrcAlpha ColorMaterial AmbientAndDiffuse SetTexture [_MainTex] { Combine Texture * Primary } } }}
如图:
1 0
- unity 2d遮挡透明显示整理
- 2D游戏中人物被遮挡的透明效果
- 如何实现透明遮挡层显示图片
- unity 2D 透明遮罩 简单实现
- 【Unity】为什么导入2D图片背景不是透明的
- Unity Shader Example 24 (人物遮挡透明效果)
- unity 2D 透明遮罩 简单实现物体一半透明
- 【Unity】3D物体透明化方法
- unity中3D text渲染遮挡问题解决
- 【个人UNITY笔记】{基础} 2D游戏中使用Shader或Camera解决Sprite前后遮挡关系
- Shader之透明遮挡
- [Unity-13] Unity 3D 遮挡剔除(仅专业版) Occlusion Culling (Pro only)
- 【Unity闲谈】自动处理2.5D(伪3D)游戏中 物体的遮挡关系
- 【截图整理官方教程】unity 2D角色控制器 2D Character Controller
- [Unity插件]3D模型透明描边插件
- unity 遮挡剔除
- unity 遮挡剔除
- Unity Shader-遮挡处理
- Java中获取文件大小的正确方法
- JQ中判断list是否含有元素
- 收集了一个pyqt4做的浏览器
- SwipeListViewExampleActivity工程使用说明
- 后端工作流
- unity 2d遮挡透明显示整理
- Sample Variance
- Linxu指令--crond
- Android之Volley框架
- javaweb学习总结——Servlet开发(一)
- Mac卸载MySQL
- XML:Schema、三种编写Schema的方式
- 地址栏中出现汉字的情况有两种
- leetcode29---Divide Two Integers