【问题标题】:Unity. Function call after a certain period of time统一。一定时间后的函数调用
【发布时间】:2014-02-06 09:15:14
【问题描述】:

如何在一段时间后使对象不可见(或仅删除)? 使用 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 个空格.. 代码将突出显示语法。在这个问题上我已经为你做了。
  • 先生,您的第三个标签中的 Unity 错误。

标签: c# unity3d ngui


【解决方案1】:

使用 Invoke 而不是 InvokeRepeating。 检查调用函数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);
    }
    

    【讨论】:

    【解决方案3】:

    您可以通过简单地调用 Destroy 在给定时间内销毁一个对象。

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

    参数

    • obj 要销毁的对象。
    • t 可选的延迟时间 在销毁对象之前。

    http://docs.unity3d.com/Documentation/ScriptReference/Object.Destroy.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 2011-04-24
      • 2017-08-23
      • 1970-01-01
      相关资源
      最近更新 更多