Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 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 snobis · May 20, 2015 at 09:06 AM · textinterfaceuser

How to make disappear a GUI text after an amount of time?

I am trying to make a GUI text disappear after 5 seconds, but my C# script does not work. Any sugestions?

 using UnityEngine;
 using System.Collections;
 
         public class TextTimer : MonoBehaviour {
     var time = 5; //Seconds to read the text
     
     function Start (){
         yield WaitForSeconds(time);
         Destroy(gameObject);
     }
     
         }
 
 
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

5 Replies

· Add your reply
  • Sort: 
avatar image
3
Best Answer

Answer by karl_jones · May 20, 2015 at 09:09 AM

Like Lo0NuhtiK said your mixing javascript into your c#.

Do this:

 using UnityEngine;
 using System.Collections;
 
 public class TextTimer : MonoBehaviour
 {
     public float time = 5; //Seconds to read the text
 
     IEnumerator Start ()
     {
         yield return new WaitForSeconds(time);
         Destroy(gameObject);
     }
 }
Comment
Add comment · Show 7 · 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 karl_jones ♦♦ · May 20, 2015 at 09:14 AM 2
Share

Here is a super tip :) The Destroy function has a second parameter which lets you specify a delay, no need for coroutines or Invokes!

 using UnityEngine;
 using System.Collections;
  
 public class TextTimer : $$anonymous$$onoBehaviour
 {
     public float time = 5; //Seconds to read the text
 
     void Start ()
     {     
         Destroy(gameObject, time);
     }
 }


avatar image Lo0NuhtiK · May 20, 2015 at 09:17 AM 0
Share

(whispers : psst... you're forgetting the infamous "F" in your floats) xD

avatar image karl_jones ♦♦ · May 20, 2015 at 09:22 AM 1
Share

You don't need the 'F', the compiler generates the same IL code with or without. Although its probably not a bad idea as good practice :)

avatar image karl_jones ♦♦ · May 20, 2015 at 09:34 AM 1
Share

Its only if you use a value with a decimal. $$anonymous$$G 5.1 would be considered a double unless you add the f.

avatar image Lo0NuhtiK · May 20, 2015 at 09:38 AM 1
Share

Ah, ok. Yep, that still throws an error. Just tried it xD

http://answers.unity3d.com/questions/251157/the-problem-about-color-in-c.html

Show more comments
avatar image
3

Answer by zeppike · May 20, 2015 at 09:12 AM

I would use Invoke(), but your script doesn't look like a C# script. I would try something like this:

 using UnityEngine;
 using System.Collections;
  
 public class TextTimer : MonoBehaviour {
      float time = 5f; //Seconds to read the text
      
      void Start()
      {
          Invoke("Hide", time);
      }
 
      void Hide(){
          Destroy(gameObject);
      }
      
 }
  

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
1

Answer by ChristianBlandford · Dec 30, 2015 at 01:50 PM

@snobis

So Much Easier In Java Script!

 function Start(){
           yield WaitForSeconds(5);
                    Destroy(gameObject);
 }

If you want to Do it by a variable, Do it like the following -

 var TimeLength : int = 5;
 
 function Start(){
               yield WaitForSeconds(TimeLength);
                        Destroy(gameObject);
 }

Lol I am only 12 lol :D

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 pryansi96 · Nov 17, 2016 at 07:20 AM

Hey, Please help me.

I am creating an environment of forest where some enemy soldiers will be running here and there and subject has to observe them.After few seconds of observation, The questions will be asked like behind which trees soldiers are hiding.The subject(who is playing) has to click the trees.If he has clicked correct tree then a canvas which shows a text as "correct" will appear and again after clicking the next tree,the correct/incorrect canvas should appear.

I want the canvas to appear for few seconds.I have tried many codes but they are not useful.Please someone help me out.It would be very thankful for me.

Thanks in advance.

Here is my code that i am using:

// Update is called once per frame

void Update()

{

  o[0] = new Vector3(304f, 0f, 282.7f);
  o[1] = new Vector3(299.6f, 0f, 318.5f);
      ray = Camera.main.ScreenPointToRay(Input.mousePosition);
      if (Physics.Raycast(ray, out hit))
      {
          if (Input.GetMouseButtonDown(0))
          {
              i++;
              int j = 0;
              flag = 0;
              for (; j < 2; j++)
              {
                if (V3Equal(new Vector3(hit.point.x, hit.point.y, hit.point.z), o[j]))
                  {
                      flag = 1;
                  }
               }
              if (flag == 1)
              {
                  incorrectCanvas.SetActive(false);
                  correctCanvas.SetActive(true);
                  StartCoroutine(LateCall());
               }
              else if (flag == 0)
              {
                  correctCanvas.SetActive(false);
                  incorrectCanvas.SetActive(true);
              StartCoroutine(LateCall());
          }
          }
      }

}

IEnumerator LateCall()

{ yield return new WaitForSeconds(10);

}

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 BeardBadshah · Aug 01, 2019 at 06:31 AM

what if we want to show that same panel or GUI elemant again after some time. like in the leveling game for round 1 and then round 2 and so on ?

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

7 People are following this question.

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

Related Questions

Custom text UI 1 Answer

How to make a user interface form? 2 Answers

Pop up text from Floating text positioner interface c# 0 Answers

UI behavior on resolution change 1 Answer

How can I 'disable' editing with a TextArea? 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