2014-02-06 4 views
2

Как я могу сделать объект невидимым (или просто удалить) через определенный промежуток времени? Используйте NGUI.Единство. Вызов функции по истечении определенного периода времени

Мой пример (изменения):

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 , ...); 
    } 
} 
+0

Просто FYI - если вы положили 4 пробела в начале строки, код будет выделен синтаксисом. Я сделал это для вас по этому вопросу. –

+0

Неверное единство в вашем третьем теге сэр. – Firoso

ответ

4

Используйте Invoke, а не InvokeRepeating. проверка функции Invoke 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"); 
     } 
    } 
} 
2

попробовать

StartCoroutine(SomeFunctionAfterSomeTime); 

IEnumerator SomeFunctionAfterSomeTime() 
{ 
    ... //Your own logic 
    yield return new WaitForSeconds(SomeTime); 
} 
+0

В какой библиотеке используется IEnumerator? –

+0

@easy_peasy, http://msdn.microsoft.com/en-us/library/system.collections.ienumerator%28v=vs.110%29.aspx – David

+0

@easy_peasy проверить http://docs.unity3d.com/ Документация/Руководство/Coroutines.html –

Смежные вопросы