- Home /
Smoothing Directionally between three materials
First of all, no this isnt the question on how you alpha-tween between colors, but quite close to that.
Three seperate meshes clipped to another, each one has its own material. These three materials should fade into another, like an gradient between three colors.
Now I know of the Gradient Class, I thought of using it paired with an shader with an seperate alpha-mask, which would be an simple texture generated via setpixel, however this would require the meshes to overlap, which I cant let happen because of the mechanics required for the game.
Another thought would be lerping the materials by calculating an 0~1 value by the player position and the length of the player and then using material.lerp with t being the value calculated.
I would like to ask if anyone has another suggestion for this, perhaps there is a way to have an "real" smoothed out material change?
Answer by G4merSylver · Dec 26, 2015 at 10:58 AM
Once again I solved it,
Using the position.x and the renderer.size.x property I made an "range", e.G position.x as min and position.x + renderer.size.x as max, and the player position would be used as an "thumb" (player.position.x + object.position.x), when divided by another you would get an decimal value ranging from 0~1 which I use for an if() chain that lerps between three three different materials, although it isnt exactly the solution I wanted its still good enough.
A snippet in case someone should have the same problem:
float pos = player.transform.position.x - _biome.linkedTerrain.transform.position.x;
float reach = _biome.linkedTerrain.transform.GetComponentInChildren<Renderer> ().bounds.size.x;
Note: For this to work you need to have an array sorted by the position of the meshes whose materials will be interpolated.
Your answer
Follow this Question
Related Questions
Unity2D Sprite Fade In and Out 3 Answers
Object see-through when rendering mode is set to Fade 1 Answer
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Black border around 2D sprite 3 Answers