问题
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 , ...);
}
}
回答1:
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");
}
}
}
回答2:
try
StartCoroutine(SomeFunctionAfterSomeTime);
IEnumerator SomeFunctionAfterSomeTime()
{
... //Your own logic
yield return new WaitForSeconds(SomeTime);
}
回答3:
You can destroy an object in a given time by simply calling Destroy.
public static void Destroy(Object obj, float t = 0.0F);
Parameters
- obj The object to destroy.
- t The optional amount of time to delay before destroying the object.
See http://docs.unity3d.com/Documentation/ScriptReference/Object.Destroy.html
来源:https://stackoverflow.com/questions/21598444/unity-function-call-after-a-certain-period-of-time