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 /
  • Help Room /
avatar image
0
Question by Digestivbiscuitsm · Jul 29, 2017 at 08:46 AM · c#scripting beginnerwaitforsecondsdelay

How to wait a certain amount of seconds in C#

I have looked everywhere for an answer and but they never seem to work... I have tried using this: using UnityEngine; using UnityEngine.UI;

 public class textBootUp : MonoBehaviour {
 
     void Start () {
 
         Text textLoad = GetComponent<Text>();
 
         //Start of text change
         textLoad.text = "";
         System.Threading.Thread.Sleep(3000); //Attempt of a wait script
         textLoad.text = "Loading";
 
     }
 }

The problem is when I launch the game in the editor, it takes 3 more seconds to load than normal and then when it has finished loading, it automatically changes the text to 'Loading'. Can anyone help?

Comment
Add comment
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

4 Replies

· Add your reply
  • Sort: 
avatar image
2

Answer by Menyus777 · Jul 29, 2017 at 10:31 AM

To wait seconds in c# i have two ideas:

  • Time.deltatime in a loop (however i think this would not work in your case, and tend to freeze unity)

  • IEnumerator yield return new waitforseconds(3f);

Example:

 IEnumerator waiter_not_that_waiter_just_waiter(){
      yield return new waitforseconds(3f);
      //my code here after 3 seconds
 }







Comment
Add comment · Show 2 · 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 Menyus777 · Jul 29, 2017 at 10:45 AM 0
Share

To run a Couroutine u have to call this function like this, StartCouroutine(functionname);

avatar image jandd661 · Jul 29, 2017 at 12:46 PM 0
Share

Additional note: you would also need some sort of check/switch in your Start(). Like 'bool readyToGO' Set it to false before starting the Coroutine. Then have the IEnumerator set it to true when it finishes. Like 'readyToGo = true' where @$$anonymous$$enyus777 has 'my code ......'

https://docs.unity3d.com/$$anonymous$$anual/Coroutines.html

hope this helps

avatar image
0

Answer by mircojanisch · Jul 29, 2017 at 01:38 PM

What I almost always do is to store the time in variable and then substract Time.deltaTime from it in the Update loop

 public float time;
 private float timeStore;
 
 void Start(){
     timeStore = time;
 }
 
 void Update(){
     if (time > 0) {
         time -= Time.deltaTime;
     } else {
         //Do Stuff    
         time = timeStore;        
     }
 }
Comment
Add comment · Show 1 · 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 jandd661 · Jul 29, 2017 at 01:52 PM 0
Share

Fyi, To render the "Loading" text, It must be done outside of Start() as it fires before the first frame is rendered. So waiting in Start() will also delay the appearance of the text.

avatar image
0

Answer by jandd661 · Jul 29, 2017 at 02:05 PM

Maybe something like this? Not great but you get the idea

 public class textBootUp : MonoBehaviour {
  
      void Start () {
  
         Text textLoad = GetComponent<Text>();
  
         //Start of text change
         textLoad.text = "";
         letsGo = false;
         CoRunning = false;
         //System.Threading.Thread.Sleep(3000); //Attempt of a wait script
         //textLoad.text = "Loading";
  
      }
  }
 
 void Update(){
     if(!letsGo){
         TextLoad.text = "Loading";
         if(!CoRunning){
             StartCoroutine(waiter_not_that_waiter_just_waiter);
         }
         return;
     }
     //below here will start after Coroutine
 
 }
 
  IEnumerator waiter_not_that_waiter_just_waiter(){
     CoRunning = true;
      //Do some stuff here while we wait
     yield return new waitforseconds(3f);
     //my code here after 3 seconds
     textLoad.text = "";
     letsGo = true;
     CoRunning = false;
  }
 
 
 
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 vishal · May 18, 2018 at 06:51 AM

@Digestivbiscuitsm

Problem:

public class textBootUp : MonoBehaviour {

  void Start () {
 
      Text textLoad = GetComponent<Text>();
 
      //Start of text change
      textLoad.text = "";
      System.Threading.Thread.Sleep(3000); //Attempt of a wait script
      textLoad.text = "Loading";
 
  }

}

Solution 1: public class textBootUp : MonoBehaviour {

    void Start()
   {
       StartCoroutine(ChangeText(30f));
   }

   IEnumerator ChangeText(int halt)
  {
        Text textLoad = GetComponent<Text>();

         //Start of text change
        textLoad.text = "";
        yield return new WaitForSeconds(halt);
        textLoad.text = "Loading";
  }

} Solution 2:

public class textBootUp : MonoBehaviour {

  void Start ()
 {
 
       Text textLoad = GetComponent<Text>();
 
        //Start of text change
        textLoad.text = "";
        Invoke("ChangeText", 30f);
  }

 void ChangeText()
 {
       textLoad.text = "Loading";
 }

}

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

407 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 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 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 avatar image avatar image

Related Questions

Wait time Before Camera Switching? 0 Answers

HELP! How to make Update function start after delay? C# 2 Answers

need help for adding a delay code before walking of npc 2 Answers

I'm trying to create a script to store a number of colors and when a gameObject is selected it would display a menu and user can choose what color to assign it. 0 Answers

Best way to learn how to utilize the Unity API? 2 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