5

一定期間後にオブジェクトを非表示にする (または単に削除する) にはどうすればよいですか? 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 , ...);
    }
}
4

3 に答える 3

4

InvokeRepeating ではなく Invoke を使用します。ここで関数の呼び出しを確認してください

 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");
        }
    }
}
于 2014-02-06T10:08:56.977 に答える
2

試す

StartCoroutine(SomeFunctionAfterSomeTime);

IEnumerator SomeFunctionAfterSomeTime()
{
    ... //Your own logic
    yield return new WaitForSeconds(SomeTime);
}
于 2014-02-06T09:23:33.117 に答える
1

Destroy を呼び出すだけで、特定の時間内にオブジェクトを破棄できます。

public static void Destroy(Object obj, float t = 0.0F);

パラメーター

  • obj 破棄するオブジェクト。
  • t オブジェクトを破棄するまでのオプションの遅延時間。

http://docs.unity3d.com/Documentation/ScriptReference/Object.Destroy.htmlを参照してください。

于 2014-02-06T13:01:50.697 に答える