Hi,
We need to fade between 2 materials based on collisions.
We have started with just a timed script to do so but it’s not working properly. It should just switch between the 2 materials based on the time.
How would we go about doing this and how would it be based off collisions with layers? Would this be possible with using the Unity’s terrain.
// Blends between two materials
var material1 : Material;
var material2 : Material;
var duration = 2.0;
function Start () {
// At start, use the first material
renderer.material = material1;
}
function Update () {
// ping-pong between the materials over the duration
var lerp : float = Mathf.PingPong (Time.time, duration) / duration;
renderer.material.Lerp (material1, material2, lerp);
}
actually it's OnTriggerEnter() and OnTriggerExit(). But that did aldonaleto already answer you in another very similar question you asked.
– swisscoderWell, there is one thing. I'm fairly certain that Material.Lerp doesn't work as you'd expect with textures. It only interpolates float data, and obviously needs them both to have the same shader to make any sense. I'd have a look at shaders that can fade between two different textures.
– syclamothThanks for the response. Yes, I tried the above and it doesn't work. Having 2 of the same textures defeats the purpose of switching between 2 textures. As for shaders, I'm not too familiar with the coding, but I'm sure we can figure it out. How can I control blending based off collisions if it's a shader? And by collisions I mean world particle collider, not sure if that's possible.
– BHS