- Home /
Check when color is approximate to another
I am making a fader that loads when the color is white, the scripts fade out uses color.lerp which means i cannot actually check when the color is approximately white. since i cant it takes a long time to load. what i want is to be able to check if the color is near white and not actually white.
Code:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Fader : MonoBehaviour {
public bool fadeIn = true;
Image image;
RectTransform rTransform;
public float fadeSpeed = 2f;
private bool canLoad = false;
private int levelToLoad = 0;
public Color loadColor;
void Awake(){
image = gameObject.GetComponent ("Image") as Image;
rTransform = gameObject.GetComponent ("RectTransform") as RectTransform;
rTransform.sizeDelta = new Vector2 (Screen.width,Screen.height);
}
void Update(){
if(fadeIn){
image.color = Color.Lerp(image.color,Color.clear,Time.deltaTime*fadeSpeed);
}
if(!fadeIn){
image.color = Color.Lerp(image.color,Color.white,Time.deltaTime*fadeSpeed);
}
if(image.color == Color.grey){
if(canLoad){
Application.LoadLevel(levelToLoad);
}
}
}
public void FadeOutAndLoad(int level){
fadeIn = false;
canLoad = true;
levelToLoad = level;
}
public void FadeIn(){
fadeIn = true;
}
}
Answer by tanoshimi · Jan 04, 2015 at 09:31 PM
"uses color.lerp which means i cannot actually check when the color is approximately white"
That's only because of the way you're using lerp. If you use Color X = Color.Lerp(A, B, C)
then X is exactly A when C is 0, and exactly B when C is 1. You could define X as being "approximately B" where C > 0.95, say, and "approximately A" when C < 0.05.
See here for a better explanation of how to use lerp correctly for linear interpolation: http://www.blueraja.com/blog/404/how-to-use-unity-3ds-linear-interpolation-vector3-lerp-correctly
Your answer
![](https://koobas.hobune.stream/wayback/20220613175619im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Controlling duration of Color.Lerp in seconds 2 Answers
Color.Lerp doesn't work 1 Answer
Change light color smoothly without Lerp ??? 2 Answers
Gradient Background With Random Color Lerp 0 Answers
Burning Effect Lerp Not werking 2 Answers