• 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
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
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 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
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

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

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

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

Wait time Before Camera Switching? 0 Answers

How do you make your player jump in the Roll-a-Ball tutorial series? 0 Answers

c# shooting problem (probably pretty simple) 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