Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using UnityEngine.SceneManagement;
  5.  
  6. public class ScreenFader : MonoBehaviour
  7. {
  8. public Image FadeImg;
  9. public float fadeSpeed = 1.5f;
  10. public bool sceneStarting = true;
  11.  
  12.  
  13. void Awake()
  14. {
  15. FadeImg.rectTransform.localScale = new Vector2(Screen.width, Screen.height);
  16. }
  17.  
  18. void Update()
  19. {
  20. // If the scene is starting...
  21. if (sceneStarting)
  22. // ... call the StartScene function.
  23. StartScene();
  24. }
  25.  
  26.  
  27. void FadeToClear()
  28. {
  29. // Lerp the colour of the image between itself and transparent.
  30. FadeImg.color = Color.Lerp(FadeImg.color, Color.clear, fadeSpeed * Time.deltaTime);
  31. }
  32.  
  33.  
  34. void FadeToBlack()
  35. {
  36. // Lerp the colour of the image between itself and black.
  37. FadeImg.color = Color.Lerp(FadeImg.color, Color.black, fadeSpeed * Time.deltaTime);
  38. }
  39.  
  40.  
  41. void StartScene()
  42. {
  43. // Fade the texture to clear.
  44. FadeToClear();
  45.  
  46. // If the texture is almost clear...
  47. if (FadeImg.color.a <= 0.05f)
  48. {
  49. // ... set the colour to clear and disable the RawImage.
  50. FadeImg.color = Color.clear;
  51. FadeImg.enabled = false;
  52.  
  53. // The scene is no longer starting.
  54. sceneStarting = false;
  55. }
  56. }
  57.  
  58.  
  59. public IEnumerator EndSceneRoutine(int SceneNumber)
  60. {
  61. // Make sure the RawImage is enabled.
  62. FadeImg.enabled = true;
  63. do
  64. {
  65. // Start fading towards black.
  66. FadeToBlack();
  67.  
  68. // If the screen is almost black...
  69. if (FadeImg.color.a >= 0.95f)
  70. {
  71. // ... reload the level
  72. SceneManager.LoadScene(SceneNumber);
  73. yield break;
  74. }
  75. else
  76. {
  77. yield return null;
  78. }
  79. } while (true);
  80. }
  81.  
  82. public void EndScene(int SceneNumber)
  83. {
  84. sceneStarting = false;
  85. StartCoroutine("EndSceneRoutine", SceneNumber);
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement