- Home /
How to display a list of of screens one after the next
I am working on this game and I created this script where in the Editor it prompts the user to enter how many Texture2D does he/ she wants to add. But for some reason when I play the application it only shows the last screen. I do not know if that is because it does not read the first screen or if it is going through all the screens WAY to fast.
Here is the code I have so far:
public class GameScreenTransition :
MonoBehaviour { #region Fields
///
/// If there is more than 1 screen, the developer can use this
field to determine the wait time (in seconds) /// before transitioning to the next screen /// public int TimeBetweenScreens; /// /// Toggles the Fade option on/ off /// public bool EnableFadeIn;
///
/// Toggles the Fade option on/ off
///
public bool EnableFadeOut;
///
/// The speed at which the user wants the screen to fade
///
public float FadeTime;
///
/// Transparency level
///
private float _alpha = 1;
#endregion
#region Properties
public List Screen;
private bool EnableFadeInProperty
{
get { return EnableFadeIn; }
set { EnableFadeIn = value; }
}
private bool EnableFadeOutProperty
{
get { return EnableFadeOut; }
set { EnableFadeOut = value; }
}
#endregion
#region Unity Events
///
/// Handles all GUI draw calls onto the screen
///
void OnGUI()
{
DrawScreen();
}
#endregion
#region Private Fields
private void DrawScreen()
{
foreach(var texture in Screen)
{
if (EnableFadeInProperty)
FadeIn();
GUI.DrawTexture(new Rect(0, 0, UnityEngine.Screen.width,
UnityEngine.Screen.height), texture);
if (EnableFadeOutProperty)
FadeOut();
StartCoroutine(Wait());
}
}
private void FadeIn()
{
var d = 0.3f / FadeTime;
while (_alpha < 1) { _alpha += Time.deltaTime * d; StartCoroutine(Wait()); }
}
private void FadeOut()
{
var d = 0.3f / FadeTime;
while (_alpha > 0) { _alpha -= Time.deltaTime * d; StartCoroutine(Wait()); }
}
#endregion
#region Coroutines
IEnumerator Wait()
{
yield return new WaitForSeconds(TimeBetweenScreens);
}
#endregion
}
Can anyone tell me what I am doing wrong? I am sure the error is in my foreach loop. Many thanks in advance!
I tried disabling the fade in fade out methods but it is still displaying the last screen.
Your answer

Follow this Question
Related Questions
Multiple Cars not working 1 Answer
A node in a childnode? 1 Answer
Distribute terrain in zones 3 Answers
Unity: C#: Eyes look at mouse: HELP!! 3 Answers
C# how to make Character Motor Jump Infinitely Upward 2 Answers