- Home /
Shader Rendering above everything only on Mobile.
Hello,
So I'm using this really nice gradient sprite shader in my project and it looks great while testing. However whenever I run it on iOS it renders above everything and makes it look like everything is behind it.
Im still new with shaders, I was wondering if anyone knows an easy fix.
Thanks! :)
  Shader "Custom/SpriteGradient" {
      Properties{
          [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
          _Color("Bottom Color", Color) = (1,1,1,1)
          _Color2("Top Color", Color) = (1,1,1,1)
          _Angle("Angle", Range(0,1)) = 0
          _InverseAngle("Invert the angle (0 off, 1 on)", Range(0,1)) = 0
  
          _StencilComp("Stencil Comparison", Float) = 8
          _Stencil("Stencil ID", Float) = 0
          _StencilOp("Stencil Operation", Float) = 0
          _StencilWriteMask("Stencil Write Mask", Float) = 255
          _StencilReadMask("Stencil Read Mask", Float) = 255
          _ColorMask("Color Mask", Float) = 15
      }
  
          SubShader{
          Tags{ "Queue" = "Transparent"
              "IgnoreProjector" = "True"
              "RenderType" = "Transparent"
              "PreviewType" = "Plane"
              "CanUseSpriteAtlas" = "True" }
      
  
          Stencil
          {
              Ref[_Stencil]
              Comp[_StencilComp]
              Pass[_StencilOp]
              ReadMask[_StencilReadMask]
              WriteMask[_StencilWriteMask]
          }
  
          Cull Off
          Lighting Off
          ZWrite Off
          ZTest[unity_GUIZTestMode]
          Fog{ Mode Off }
          Blend SrcAlpha OneMinusSrcAlpha
          ColorMask[_ColorMask]
  
          Pass{
          CGPROGRAM
  #pragma vertex vert
  #pragma fragment frag
  #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;
      fixed4 _Color2;
      float _Angle;
      int _InverseAngle;
  
      v2f vert(appdata_t IN)
      {
          v2f OUT;
          OUT.vertex = UnityObjectToClipPos(IN.vertex);
          OUT.texcoord = IN.texcoord;
  #ifdef UNITY_HALF_TEXEL_OFFSET
          OUT.vertex.xy += (_ScreenParams.zw - 1.0)*float2(-1,1);
  #endif
          float angledLerpX = saturate(lerp(IN.texcoord.x, 0, _Angle));
          float angledLerpY = saturate(lerp(0, IN.texcoord.y, _Angle));
          float angledLerp = (angledLerpX + angledLerpY);
          angledLerp = lerp(angledLerp, 1 - angledLerp, _InverseAngle);
  
          OUT.color = lerp(_Color, _Color2, angledLerp);
          return OUT;
      }
  
      sampler2D _MainTex;
  
      fixed4 frag(v2f i) : COLOR{
          fixed4 c = tex2D(_MainTex, i.texcoord) * i.color;
          clip(c.a - 0.01);
          return c;
      }
          ENDCG
      }
      }
  }
               Comment
              
 
               
              I would like to clarify that this is attached to a 2d sprite in the scene, but the sprite is positioned behind some stuff.
Your answer
 
 
             Follow this Question
Related Questions
Shader not working correctly on iOS after 2018->2020 upgrade 0 Answers
Sprite rendering problems only on iPad mini 0 Answers
Feeding a GBuffer to a camera 0 Answers
Applying full screen image effects to UI only 2 Answers
Shadergraph: Getting normal vectors 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                