Search Unity

Background UI Image

Discussion in 'UGUI & TextMesh Pro' started by Woolf, Mar 11, 2015.

  1. Woolf

    Woolf

    Joined:
    Dec 4, 2012
    Posts:
    35
    Hello. how can I put a image under 3D objects (on the principle of skybox)?

    I used this shader

    Shader "UI/Back3D_Default"
    {
    Properties
    {
    //[PerRendererData]
    _MainTex ("Sprite Texture", 2D) = "white" {}
    _Color ("Tint", Color) = (1,1,1,1)

    _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"="Background"
    "IgnoreProjector"="True"
    "RenderType"="Background"

    "CanUseSpriteAtlas"="True"
    }


    Cull Off
    Lighting Off

    ZWrite Off
    ZTest [Always] //Less | Greater | LEqual | GEqual | Equal | NotEqual | Always

    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;

    v2f vert(appdata_t IN) {
    v2f OUT;
    OUT.vertex = mul(UNITY_MATRIX_MVP, IN.vertex);
    OUT.texcoord = IN.texcoord;
    OUT.color = IN.color * _Color;
    return OUT;
    }

    sampler2D _MainTex;

    fixed4 frag(v2f IN) : SV_Target {
    half4 color = tex2D(_MainTex, IN.texcoord) * IN.color;
    clip (color.a - 0.01);
    //color.r=1;
    return color;
    }
    ENDCG
    }
    }
    }

    But it does not work..



    Help me please..
     
  2. SimonDarksideJ

    SimonDarksideJ

    Joined:
    Jul 3, 2012
    Posts:
    1,689
    Simple, have a Screenspace Camera canvas with a Plane distance set to draw behind the 3D objects :D
    Or a world space canvas placed behind or attached to the 3D hobject you want to show it behind.