2017-12-08 11 views
0

私がここでやろうとしているのは、これを黒にすることです。私はインスペクタのカラーティントを変更しましたが、まだ動作しませんでした。透明シェーダをカラーブラック(Unity)に変更する

ここに私のコードは、これまでの私の髪シェーダのためである:

Shader "Custom/Paul/Hair" { 
Properties { 
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} 
_Color ("Color Tint", Color) = (1,1,1,1) 
} 

SubShader { 
    Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} 
    LOD 100 

    ZWrite off 
    Lighting Off 
    Blend SrcAlpha OneMinusSrcAlpha 
    Cull back 

    Pass { 
     CGPROGRAM 

      #pragma vertex vert 
      #pragma fragment frag 
      #pragma multi_compile_fog 

      #include "UnityCG.cginc" 

      struct appdata_t { 
       float4 vertex : POSITION; 
       float2 texcoord : TEXCOORD0; 
      }; 

      struct v2f { 
       float4 vertex : SV_POSITION; 
       half2 texcoord : TEXCOORD0; 
       UNITY_FOG_COORDS(1) 
       half4 color: COLOR; 
      }; 

      sampler2D _MainTex; 
      float4 _MainTex_ST; 

      v2f vert (appdata_t v) 
      { 
       v2f o; 
       o.vertex = UnityObjectToClipPos(v.vertex); 
       o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); 
       UNITY_TRANSFER_FOG(o,o.vertex); 
       return o; 
      } 

      fixed4 frag (v2f i) : SV_Target 
      { 
       fixed4 col = tex2D(_MainTex, i.texcoord); 
       //fixed4 col = tex2D(_MainTex, i.texcoord) * _Color; 
       UNITY_APPLY_FOG(i.fogCoord, col); 
       return col; 
      } 
     ENDCG 
    } 
    } 
} 

が、私はプロパティで色合いの色を変更しようとしたが、それは髪の色を変更しません。シェーダプロパティでヘアカラーを動的に変更する方法はありますか?コードだけでもシェーダプロパティではありません。私の悪い英語のために申し訳ありません。

さらにもう1つ。私は何の誤りもありません。

+0

*透明な部分を黒色に変更したくないのはほぼ確実です。第二に、あなたは* color *を黒に変えなかった、あなたはそれを完全に透明な白に変えました。* – Draco18s

+0

@ Draco18s私は実際にそれを試しましたが、何もしませんでした。だから私は再び白に変更します。 – NoobProgrammer

+0

それから、あなたはそれを黒に変更したことを示すイメージを更新します。 「私は黒がほしい」と言って、色を白に設定すると、あなたは驚くほど明白なことはしていないと思います(したがって、最小の*完全な検証例は提供していません)。 – Draco18s

答えて

0

代わりにこれをやりました。

Shader "Custom/Paul/Hair" { 


Properties 
{ 
    _MainTex ("Texture", 2D) = "white" {} 
    _Color("Color", Color) = (1,1,1,1) 
} 
SubShader 
{ 
    Tags{ "Queue" = "AlphaTest" "RenderType" = "TransparentCutout" "IgnoreProjector" = "True" } 
    LOD 100 

    Blend SrcAlpha OneMinusSrcAlpha 
    ZWrite off 
    Lighting Off 
    Cull back 

    Pass 
    { 
     CGPROGRAM 

     #pragma vertex vert 
     #pragma fragment frag 

     #include "UnityCG.cginc" 

     struct appdata 
     { 
      float4 vertex : POSITION; 
      float2 uv : TEXCOORD0; 
     }; 

     struct v2f 
     { 
      float4 vertex : SV_POSITION; 
      half2 uv : TEXCOORD0; 
     }; 

     float4 _MainTex_ST; 
     sampler2D _MainTex; 
     fixed4 _Color; 

     v2f vert (appdata v) 
     { 
      v2f o = (v2f)0; 
      o.vertex = UnityObjectToClipPos(v.vertex); 
      o.uv = TRANSFORM_TEX(v.uv, _MainTex); 
      o.uv = v.uv; 
      return o; 
     } 

     fixed4 frag (v2f i) : SV_Target 
     { 
      fixed4 col = tex2D(_MainTex, i.uv) * _Color; 
      return col; 
     } 
     ENDCG 
    } 
} 

これは私と同じ問題に直面している他の人に役立つかもしれません。

関連する問題