using UnityEngine;
using System.Collections;
public class PanelFader : MonoBehaviour {
UIWidget[] fadingWidgets = null;
float[] originalAlpha = null;
float fade = 0;
float fadeDir = 0;
public float fadeSpeed = 1.0f;
public bool beginHidden = true;
float prevRealTime;
void Start()
{
fadingWidgets = GetComponentsInChildren<UIWidget>();
originalAlpha
= new float[fadingWidgets
.Length]; for (int i = 0; i < fadingWidgets.Length; i++)
{
originalAlpha[i] = fadingWidgets[i].alpha;
fadingWidgets[i].alpha = (beginHidden) ? 0 : 1;
}
enabled = false;
if (beginHidden) gameObject.SetActiveRecursively(false);
prevRealTime = Time.realtimeSinceStartup;
}
void Update()
{
float dt = Time.realtimeSinceStartup - prevRealTime;
prevRealTime = Time.realtimeSinceStartup;
fade += fadeDir * dt * fadeSpeed;
fade = Mathf.Clamp01(fade);
for (int i = 0; i < fadingWidgets.Length; i++)
{
fadingWidgets[i].alpha = originalAlpha[i] * fade;
}
if (fadeDir > 0 && fade >= 1)
{
enabled = false;
}
else if (fadeDir < 0 && fade <= 0)
{
enabled = false;
gameObject.SetActiveRecursively(false);
}
}
}