Search code examples
c#unity-game-enginengui

Unity. Function call after a certain period of time


How can I make an object invisible (or just delete) after a certain period of time? Use NGUI.

My example (for changes):

public class scriptFlashingPressStart : MonoBehaviour  
{   
    public GameObject off_Logo;
    public float dead_logo = 1.5f;

    void OffLogo()  
    {       
        off_Logo.SetActive(false);  
    }

    //function onclick button
    //remove item after a certain time after pressing ???
    void press_start()
    {
        InvokeRepeating("OffLogo", dead_logo , ...);
    }
}

Solution

  • Use Invoke rather than InvokeRepeating. check Invoke function here

     public class scriptFlashingPressStart : MonoBehaviour  
        {   
            public GameObject off_Logo;
            public float dead_logo = 1.5f;
            bool pressed = false;
    
        void OffLogo()  
        {       
           //do anything(delete or invisible)
            off_Logo.SetActive(false);
             pressed = false;  
        }
    
       //use Invoke rather than InvokeRepeating
        void press_start()
        {
            if(!pressed)
            {
              pressed = true;
              Invoke("OffLogo", dead_logo);
            }
            else
            {
              Debug.Log("Button already pressed");
            }
        }
    }