- Home /
How to change a value in custom shader through script, C#
Hi!
I´m using a shader that i found on the net, called "Blend 2 Textures" Here´s the shader:
Shader "Blend 2 Textures" {
Properties {
_Blend ("Blend", Range (0, 1) ) = 0.5
_MainTex ("Texture 1", 2D) = ""
_Texture2 ("Texture 2", 2D) = ""
}
SubShader {
Pass {
SetTexture[_MainTex]
SetTexture[_Texture2] {
ConstantColor (0,0,0, [_Blend])
Combine texture Lerp(constant) previous
}
}
}
}
Im trying to use that Blend-value through a C#-script so that i can control the blending on the fly, but i haven´t had much success. i can get the blend value by using
print(renderer.material.GetFloat("_Blend"));
but my problem starts from there. I just cant get my script to add or subtract anything to that exact value of Blend.
Any help is appreciated, thanks beforehand :)
I´ll add my latest failure here also, if its of any help
public class Event_Planet : MonoBehaviour {
public float blendersValue;
public float blendValue;
void Start() {
renderer.material.shader = Shader.Find("2TextureBlend");
}
void Update () {
print(renderer.material.GetFloat("_Blend"));
blendersValue = blendersValue + blendValue;
}
}
Answer by Jessespike · Oct 31, 2012 at 10:07 PM
this.renderer.material.SetFloat("_Blend", someFloatValue);
doco
These days in Unity:
gameObject.GetComponent<Renderer>().sharedMaterial.SetFloat("_YourParameter", someValue);
Your answer
Follow this Question
Related Questions
Cannot change material on build 1 Answer
Texture2D to Texture3D 2 Answers
Light based texture change on material 0 Answers
Renderer Removed When Scene Started 0 Answers
Having a problem with the second material (on the same renderer) 0 Answers