Код довольно прост:
Синтаксис:
Используется csharp
using UnityEngine;
namespace Assets.Asimov.Utils
{
[RequireComponent(typeof(Camera))]
public class CameraShaderReplacement : MonoBehaviour
{
[SerializeField]
private Shader ReplacementShader;
public void Start ()
{
Debug.Log("Activate replacement shader");
GetComponent<Camera>().SetReplacementShader(ReplacementShader, "RenderType");
}
}
}
namespace Assets.Asimov.Utils
{
[RequireComponent(typeof(Camera))]
public class CameraShaderReplacement : MonoBehaviour
{
[SerializeField]
private Shader ReplacementShader;
public void Start ()
{
Debug.Log("Activate replacement shader");
GetComponent<Camera>().SetReplacementShader(ReplacementShader, "RenderType");
}
}
}
Синтаксис:
Используется csharp
Shader "ColorReplacement" {
Properties {
ReplacementColor ("ReplacementColor", Color) = (0,0,0,1)
_MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 vertex : SV_POSITION;
};
float4 ReplacementColor;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
return ReplacementColor;
}
ENDCG
}
}
}
Properties {
ReplacementColor ("ReplacementColor", Color) = (0,0,0,1)
_MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 vertex : SV_POSITION;
};
float4 ReplacementColor;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
return ReplacementColor;
}
ENDCG
}
}
}