J'ai des objets dans mon jeu que je veux être invisible quand ils sont frappés par la lumièreUnity faire l'objet fondu lorsque touché par la lumière
L'effet que je suis à la recherche est quelque chose comme la lentille de la vérité de Zelda Ocarina of temps
Je l'ai travail en faisant Raycasts du lightsource dans le sens de mes objets et il est coins
Mais maintenant, je veux voir si je peux le faire fonctionner comme la lentille de la vérité (si la lumière frappe une partie de l'objet, il ne fait qu'éclipser cette partie
Shader "Custom/Matte Shadow" {
Properties{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
_Cutoff("Alpha cutoff", Range(0,1)) = 0.5
}
SubShader{
Tags{ "Queue" = "AlphaTest" "RenderType" = "TransparentCutout" }
LOD 200
Blend Zero SrcColor
Offset 0, -1
CGPROGRAM
#pragma surface surf ShadowOnly alphatest:_Cutoff fullforwardshadows
fixed4 _Color;
struct Input {
float2 uv_MainTex;
};
inline fixed4 LightingShadowOnly(SurfaceOutput s, fixed3 lightDir, fixed atten) {
fixed4 c;
c.rgb = s.Albedo*atten;
c.a = s.Alpha;
return c;
}
void surf(Input IN, inout SurfaceOutput o) {
fixed4 c = _Color;
o.Albedo = c.rgb;
o.Alpha = 0.0f;
}
ENDCG
}
Fallback "Transparent/Cutout/VertexLit"
}
actuellement j'ai ce shader.
il rend l'objet transparent mais lorsqu'il est allumé, il reçoit des ombres. Le problème est que c'est encore visible, j'ai besoin qu'il soit invisible sous la LUMIÈRE et VISIBLE dans les OMBRES.
Si par « Fondus » vous l'entendez devenir semi-transparent au fil du temps, je ne pense pas qu'il existe une solution sans toucher les shaders. –