Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by DanielB89 · Oct 21, 2014 at 08:17 PM · screenpausefaderestart game

Need help getting the screen to fade.

I'm trying to get the screen to darken when I start the game and when I restart. I have followed a tutorial for this but was not very clear.

 public class ScreenFader : MonoBehaviour {
     
     // Holds the texutre to fill the screen
     [SerializeField] Texture2D fadeTexture;
     [SerializeField] Color colorStart = Color.black;
     [SerializeField] Color colorEnd = Color.clear;
 
     
 
     // Time to completion to fade
     [SerializeField]float fadeTime = 1.0f;
 
     // The container for the functions to be triggered when the fade has complete
     private event FadeCompleteEvent OnFadeComplete = null;
 
     // Defines the type of function which is used as a delegate
     public delegate void FadeCompleteEvent();
 
     // Internally used to track the passage of time
     private float timer = 0.0f;
     
     // Loads a prefab and create an instance from it
     static public void CreateFade (string _prefabName,
                                     FadeCompleteEvent _completeEvent) {
     // Load the asset as a basic object
     Object fadePrefab = Resources.Load(_prefabName, typeof(Object));
     
     // Create a new game object from the loaded prefab
     GameObject fadeObject = Instantiate( fadePrefab) as GameObject;
     
     // Find the fader's script component an assign the event
     ScreenFader fader = fadeObject.GetComponent<ScreenFader>();
     fader.OnFadeComplete = _completeEvent;
 
     }
     
     // Use this for initialization
     void Start () {
     
     }
     
     // Update is called once per frame
     void Update () {
         // Accumulate the passage of time
         timer += Time.fixedDeltaTime;
 
                   
         
         // Duration has been satisfied?
         if (timer > fadeTime)
         {
             timer = fadeTime;
         }
         if (OnFadeComplete != null)
         {
             OnFadeComplete(); 
             OnFadeComplete = null;
             Destroy(gameObject, 0.1f);           
         }
     }
     void OnGui() { 
       // Determine the passage of time as
       // a precentage of the duration time
         float percent = timer / fadeTime;
       
       // Use the percentage to the determine the
       // gradient between the two
         GUI.color = Color.Lerp(colorStart, colorEnd, percent);
       
       // Create a rectangle the size of the screen
       Rect screenRectangle = new Rect(0, 0, Screen.width, Screen.height);
       
       // Draw the texture filling the entire screen
       GUI.DrawTexture(screenRectangle, fadeTexture);
 
     }
 
   }


public class CoreGame : MonoBehaviour {

 [SerializeField] GameObject pauseMenu;

// Stores the current pause state; private bool paused = false;

 // Use this for initialization
 void Start () {
     ScreenFader.CreateFade("ScreenFadeUp", FadeUpCompleted);

     // Hide the pause menu intitially
     HandlePause(false);
 }
 
 // Update is called once per frame
 void Update () {
     // Exit early if paused
     if (paused)
     {
         return;
     }
     
     CheckInput();
     
     

 }
 static public void MakeChild(GameObject _child) { 
 
     GameObject coreGameObj = GameObject.Find("CoreGame");

     // Assign the child's transform's parent to the
     // recently found core game's transform
     _child.transform.parent = coreGameObj.transform;
 
 }
 void CheckInput()
 {
     // User has pressed pause?
     if (Input.GetKeyUp(KeyCode.P))
     {

         HandlePause(!paused);
     }
 }
 // Method to modify pause status
 private void SetPaused(bool _paused)
 {
     paused = _paused;

 }
 void FadeUpCompleted() {
     Debug.Log("Fade UP has completed!");
 }
 
 // Handles the actions of the pause event
 public void HandlePause(bool _pause) {
     
     paused = _pause;
      // Send a message to all children
         BroadcastMessage("SetPaused", paused);
         paused = !paused;
         Debug.Log("Pause Key has been pressed!");
         if (paused)
         {
             Time.timeScale = 0;
         }
         else
         {
             Time.timeScale = 1;
         }
         pauseMenu.SetActive(paused);
     }
 

}

public class PauseResume : MenuButtonBase {

 // reference to the core game object
 public CoreGame coreGame;

 // Call on button up
 protected override void doButtonAction()
 {
     coreGame.HandlePause(false);
 }


 // Use this for initialization
 void Start () {
 
 }
 
 // Update is called once per frame
 void Update () {
 
 }

}

public class PauseRestart : MenuButtonBase {

 // Called on button up
 protected override void doButtonAction()
 {
     ScreenFader.CreateFade("ScreenFadeDown", FadeDownCompleted);
 }
 
 // Use this for initialization
 void Start () {
 
 }
 
 // Update is called once per frame
 void Update () {
 
 }
 void FadeDownCompleted() {
     Application.LoadLevel("Project");
 }

}

Comment
Add comment · Show 2
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image MrSoad · Oct 21, 2014 at 10:21 PM 0
Share

This may help with your first issue, it is js but it does work so maybe it can help you a little, ignore the player prefs bit.link text

intro_controller_script.zip (1.0 kB)
avatar image DanielB89 · Oct 22, 2014 at 01:08 AM 0
Share

I was able to fix my second issue but I'm still having trouble with the screen fade. The only error I can find was this \Scripts\ScreenFader.cs(7,29): warning CS0649: Field 'ScreenFader.fadeTexture' is never assigned to, and will always have its default value null.

I already have a game object in a prefab folder that contains the fadeTexture and it is cloned in the hierarchy whenever I start the game.

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by TheShadyColombian · Oct 22, 2014 at 01:34 AM

try adding a GUI image that is black and animate it to change the alpha value, and make the script that changes the scene change the animation. contact me if you need more info, am i very happy to help!

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by DanielB89 · Oct 22, 2014 at 07:44 PM

I was able to fix it. OnFadeComplete = null; and Destroy(gameObject, 0.1f); where both inside the IF-statement and moving out of it fixed the issue.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Modifying the pause menu to have screen.lockcursor on at start 1 Answer

Need help getting screen to fade when loosing last life 0 Answers

Make damage screen ui image 1 Answer

Fade Screen Transition After Death 1 Answer

Transitions When Pausing? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges