Hi, I made a sample scene that includes GUI texture. I try to make fade in/out effect with using Color.Lerp. The problem is i cant make fade in and out animation consecutivly. It doesnt matter what the order is, the second fade animation completes suddenly without fade effect. Here is the code you can try. Just copy paste it any scene, you will see the result. Is it a bug or what it is i dont know and need some help. Hope someone help me
Here is the code:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Fader : MonoBehaviour {
private Texture2D bg;
private bool displayScreenFade = false;
private string fadeType = "fadeOut";
public Color lerpedColor = new Color(0, 0, 0, 1);
// Use this for initialization
void Start () {
bg = new Texture2D (1, 1);
bg.SetPixel(0, 0, new Color(0, 0, 0));
bg.Apply ();
StartCoroutine (fadeAnim());
}
// Update is called once per frame
void Update () {
if(displayScreenFade){
if(fadeType == "fadeOut"){
lerpedColor = Color.Lerp(new Color(0, 0, 0, 0), new Color(0, 0, 0, 1), Time.time);
}else {
lerpedColor = Color.Lerp(new Color(0, 0, 0, 1), new Color(0, 0, 0, 0), Time.time);
}
}
}
void OnGUI(){
GUI.color = lerpedColor;
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), bg);
}
IEnumerator fadeAnim() {
displayScreenFade = true;
fadeType = "fadeOut";
yield return new WaitForSeconds(2);
fadeType = "fadeIn";
yield return new WaitForSeconds(2);
displayScreenFade = false;
}
}