Unity2D Sprite灰白图(Unity3D开发之十一)
2014-11-10 14:28
531 查看
猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!
原文地址: http://www.cocos2dev.com/?p=596
昨晚看到群里问到2DSprite怎么变成灰白图,晚上看了下,修改shader是最方便的。
下面是Sprites-Gray.shader的实现,请放入自己工程:
使用方法:
原文地址: http://www.cocos2dev.com/?p=596
昨晚看到群里问到2DSprite怎么变成灰白图,晚上看了下,修改shader是最方便的。
下面是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 } } }
使用方法:
// Use this for initialization void Start () { SpriteRenderer render = this.GetComponent<SpriteRenderer> (); render.material.shader = Shader.Find ("Sprites/Gray"); }
相关文章推荐
- Unity2D Sprite灰白图(Unity3D开发之十一)
- Unity 2D 终结手册 (2) - 精灵_Unity3d 开发技术
- Unity 2D 终结手册 (3) - 精灵编辑_Unity3d开发
- 【Unity3d】关于unity2d的spriterender修改透明度方法
- Unity2D Sprite灰白图
- Unity3D笔记——unity2d Sprite 泛白
- 2DSprite添加Light照射(Unity3D开发之十六)
- Unity 2D 终结手册 (4) - 精灵打包_Unity3d开发
- Unity 2D 终结手册 (3) - 精灵编辑_Unity3d 开发技术
- 强大的游戏开发工具Unity3D推出2D开发工具,unity将混合3D与2D开发
- Unity 2D 终结手册 (1) - 2D 项目_Unity3d 开发技术
- Unity 2D 终结手册 (4) - 精灵打包_Unity3d 开发技术
- Unity3D 2D动画插件EasyMotion2D (之十一)SpriteAnimationClip Editor
- Unity 2D 终结手册 (1) (2) - 2D 项目+精灵_Unity3d开发
- Unity3D工程转成Unity2D工程会引起Sprite 2D显示不出来,不知道是什么原因?
- 2DSprite添加Light照射(Unity3D开发之十六)
- 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- 强大的游戏开发工具Unity3D推出2D开发工具,unity将混合3D与2D开发
- 工具设置Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节