- Home /
Unity2D Sprite Fading Issues
Hello!
I've posted a similar question before, with no answer, however I've improved coding-wise and have scratch coded this so far. My issue is that A. This function does the same fadeIn/Out regardless (I recognize the code is the same for both, I'm just not sure what to do to reverse it) and B. the FadeIn/Out variables aren't resetting back to false after they fade.
What am I doing wrong? using UnityEngine; using System.Collections;
public class FadeIn : MonoBehaviour {
public SpriteRenderer sprite;
public float fade = 0f;
public Color spriteColor = Color.white;
public bool fadeIn = true;
public bool fadeOut = false;
private float startTime = 0.0f;
public float fadeInTime = 1.5f;
public float fadeOutTime = 1.5f;
// Use this for initialization
void OnTriggerEnter2D () {
startTime = Time.time;
fadeIn = true;
}
void OnTriggerExit2D () {
startTime = Time.time;
fadeOut = true;
}
// Update is called once per frame
void Update () {
if(fadeIn==true){
print ("EnteringCar");
fade = Mathf.Lerp(0f, 1f, (Time.time - startTime) / fadeInTime);
spriteColor.a = fade;
sprite.color = spriteColor;
}
if(fade > 1){
fadeIn = false;
}
if(fadeOut==true){
print ("ExitingCar");
fade = Mathf.Lerp(0f, 1f, (Time.time - startTime) / fadeOutTime);
spriteColor.a = fade;
sprite.color = spriteColor;
}
if(fade < 1){
fadeOut = false;
}
}
}
Answer by FortisVenaliter · Feb 03, 2017 at 10:06 PM
First off, this is redundant:
Mathf.Lerp(0f, 1f, (Time.time - startTime) / fadeInTime);
It's functionally identical to:
Mathf.Clamp01((Time.time - startTime) / fadeInTime);
Second, to make it fade out, you'll want to use (1-fade) as the alpha value.
Finally, you want to put those checks to disable the fadeIn/fadeOut variables within the initial if checks. If they aren't on to begin with, then they shouldn't be detecting to turn off.
Hopefully that will get you started in the right direction.
Your answer
Follow this Question
Related Questions
How to change sprite only on click or during shoot state? 1 Answer
Changing one keyframe in my animation changes all of them 2 Answers
Displaying Prefab Sprite as Texture on GUI Elements 0 Answers
hide animated Sprite by code (SpriteRenderer) 2 Answers
Flipping sprite by y axis when rotated past a certain point., 1 Answer