Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
This question was closed May 29, 2020 at 03:58 AM by omaramradelmohamed12345 for the following reason:

i saw an answer for this question before

avatar image
0
Question by omaramradelmohamed12345 · May 29, 2020 at 01:25 AM · timedelaytime.deltatime

how to add time delay

i want to add time delay between scenes to this code

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 
 
 public class MoveToNextLevel : MonoBehaviour
 {
     public int nextSceneLoad;
 
     // Start is called before the first frame update
     void Start()
     {
         nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
     }
 
     public void OnTriggerEnter(Collider other)
     {
         if(other.gameObject.tag == "Player")
         {
             if(SceneManager.GetActiveScene().buildIndex == 31) /* < Change this int value to whatever your
                                                                    last level build index is on your
                                                                    build settings */
             {
                 Debug.Log("You Completed ALL Levelws");
                 
                 //Show Win Screen or Somethin.
             }
             else
             {
                 //Move to next level
                 SceneManager.LoadScene(nextSceneLoad);
 
                 //Setting Int for Index
                 if (nextSceneLoad > PlayerPrefs.GetInt("levelAt"))
                 {
                     PlayerPrefs.SetInt("levelAt", nextSceneLoad);
                 }
             }
         }
     }
 }

Comment
Add comment · Show 1
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 Bentley · May 29, 2020 at 01:35 AM 0
Share

Just trying to clarify here, do you want a delay right before the call to Scene$$anonymous$$anager.LoadScene() while the player is still in that scene for like post-game stats, or do you want to have some sort of delay between the scenes with a black screen or loading screen?

1 Reply

  • Sort: 
avatar image
0
Best Answer

Answer by Bentley · May 29, 2020 at 02:08 AM

If you're wanting to just add a delay within the current scene, you can use a coroutine for that. You would place your lines 22-28 (though the line numbers are off because the code didn't get formatted properly at the beginning) into a separate function that returns and IEnumerator, and then call that function using StartCoroutine(). Inside of that function you can use return yield WaitForSeconds() to wait before executing the scene-changing code. Here's what that would look like in your code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.SceneManagement; /* SUBSCRIBING TO MY YOUTUBE CHANNEL: 'VIN CODES' WILL HELP WITH MORE VIDEOS AND CODE SHARING IN THE FUTURE :) THANK YOU */
 
 public class MoveToNextLevel : MonoBehaviour
 {
     public int nextSceneLoad;
 
     // Start is called before the first frame update
     void Start()
     {
         nextSceneLoad = SceneManager.GetActiveScene().buildIndex + 1;
     }
 
     public void OnTriggerEnter(Collider other)
     {
         if (other.gameObject.tag == "Player")
         {
             if (SceneManager.GetActiveScene().buildIndex == 31) /* < Change this int value to whatever your
                                                                 last level build index is on your
                                                                 build settings */
             {
                 Debug.Log("You Completed ALL Levelws");
 
                 //Show Win Screen or Somethin.
             }
             else
             {
                 StartCoroutine(ChangeScenes());
             }
         }
     }
 
     IEnumerator ChangeScenes()
     {
         yield return new WaitForSeconds(5.0f);
         //Move to next level
         SceneManager.LoadScene(nextSceneLoad);
         //Setting Int for Index
         if (nextSceneLoad > PlayerPrefs.GetInt("levelAt"))
         {
             PlayerPrefs.SetInt("levelAt", nextSceneLoad);
         }
     }
 }

You can learn more about coroutines in Unity here: https://docs.unity3d.com/Manual/Coroutines.html

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

Follow this Question

Answers Answers and Comments

129 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

Related Questions

How Can I enable and then disable a light in unity after a certain time? 1 Answer

How does DeltaTime handle game logic ? 1 Answer

is Time.deltaTime dependent on computer speed? 2 Answers

How can i perform any action after some time interval 2 Answers

Get access to device (ex: Android) Touch and hold delay setting from unity application. 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