Unity2D Sprite灰白图
2017-08-25 15:50
281 查看
下面是Sprites-Gray.shader的实现,请放入自己工程:
Shader "Sprites/Gray" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" } Cull Off Lighting Off ZWrite Off Fog { Mode Off } Blend One OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile DUMMY PIXELSNAP_ON #include "UnityCG.cginc" struct appdata_t { float4 vertex : POSITION; float4 color : COLOR; float2 texcoord : TEXCOORD0; }; struct v2f { float4 vertex : SV_POSITION; fixed4 color : COLOR; half2 texcoord : TEXCOORD0; }; fixed4 _Color; v2f vert(appdata_t IN) { v2f OUT; OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex); OUT.texcoord = IN.texcoord; OUT.color = IN.color * _Color; #ifdef PIXELSNAP_ON OUT.vertex = UnityPixelSnap (OUT.vertex); #endif return OUT; } sampler2D _MainTex; fixed4 frag(v2f IN) : SV_Target { fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color; c.rgb *= c.a; float gray = dot(c.xyz, float3(0.299, 0.587, 0.114)); c.xyz = float3(gray, gray, gray); return c; } ENDCG } } }
使用方法:
3
4
5
// Use this for initialization
void Start () {
SpriteRenderer render = this.GetComponent<SpriteRenderer> ();
render.material.shader = Shader.Find ("Sprites/Gray");
}
相关文章推荐
- Unity2D Sprite灰白图(Unity3D开发之十一)
- Unity2D Sprite灰白图(Unity3D开发之十一)
- Unity 2D Toolkit中动态改变Animated Sprite的Shader
- [Unity]Sprite 2D精灵动画
- Unity3D笔记——unity2d Sprite 泛白
- unity 3d sprite2d点击判断
- Unity 2DSprite
- Unity中Sprite和Texture2D之间的关系。
- Unity3D工程转成Unity2D工程会引起Sprite 2D显示不出来,不知道是什么原因?
- Unity2d引入新功能SpriteAtlas,Sprite新的图集方式
- 【Unity3d】关于unity2d的spriterender修改透明度方法
- unity2d 修改sprite填充图片
- UNITY 2D学习笔记(一):Sprite
- 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- Unity 2D Sprite 一张精灵图片【自动切割(Automatic )】成【不规则的许多个小图片】的步骤
- KING_UNITY学习之Unity2D代码动态为Sprite Renderer的Sprite赋值sprite精灵图片
- Collider2D碰撞检测异常-Rotating sprite does not rotate collider[Unity]
- Unity2D:Sprite和UI Image的区别
- Unity2D研究院之精灵Sprite之间的碰撞事件
- Unity在运行时,将Texture2D转换成Sprite格式