Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 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 Optimus_L · Feb 08 at 12:08 PM · runtimeasyncasynchronous

Creating a fade out and in transition for loading. Functions not executing in order.

I have a custom scene management system, and when it switches scenes I want it to fade out and fade back in once the scene has loaded. If the scene is a Map Scene, load times can take 3-4 seconds as it creates all the tiles needed. However, at the moment, it's like it freezes the games for a few seconds and jumps to the map scene without any transition at all.

Here's my code for scene changes:

 public void ChangeScene(rpg_Scene _scene)
         {
             StartCoroutine(transition.FadeToBlack());
             currScene.OnClose();
             
             if (scenes[scenes.Count - 1] is rpg_MapScene)
             {
 
             }
             else
                 scenes.RemoveAt(scenes.Count - 1);
             
             scenes.Add(_scene);
             currScene = scenes[scenes.Count - 1];
             currScene.OnLoad();
             StartCoroutine(transition.FadeFromBlack());
         }
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 Optimus_L · Feb 08 at 12:09 PM 0
Share

Oh also, I have tested this in editor and in a build. Same issue.

avatar image rh_galaxy · Feb 10 at 10:42 AM 0
Share

Did you find anything useful in my answer?

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by rh_galaxy · Feb 08 at 04:43 PM

I don't think Coroutines will work here.


In my game which is a VR game where framerate is very important I do all the fade in/out before loading the scene, controlled from global code that always runs (DoNotDestroyOnLoad Game Manager). Have it all black while things in loading can affect your framerate, make it stutter. Then transition back in using a transparent cube around the camera (from my game controller). It makes no difference if you use LoadScene or LoadSceneAsync, it will always stutter.


I use one game manager, that has one main camera, that has one transparent cube around it. But maybe it can be set up different ways. This way at least you will not be without main camera some frames during scene transitions that can happen otherwise.


Here is some code, just run UpdateFade(); every update from the GM: https://github.com/rh-galaxy/galaxyvr/blob/quest/Assets/C%23/GameManager.cs#L313

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

135 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

LoadLevel Async 2 Answers

Additively loaded scene gets stuck at 90% even if allowSceneActivation is true. 2 Answers

Can't access AsyncOperation instance to change allowSceneActivation 2 Answers

SceneManager.LoadScene used within promise (or async callback) does nothing 0 Answers

How to load scene when async.progress is 0.9? 0 Answers


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