我正在显示一个帆布在团结3D,显示游戏的指示在开始的水平,这是我想要隐藏在5-6秒后。(我不想用keyDown来做)
我想知道做这件事最好的方法/练习是什么?
是用动画吗?或者使用一些异步方法比如coroutine?
发布于 2015-05-18 14:59:15
IEnumerator hideUI (GameObject guiParentCanvas, float secondsToWait,bool show = false)
{
yield return new WaitForSeconds (secondsToWait);
guiParentCanvas.SetActive (show);
}要调用它,只需启动coroutine并传入包含UI的父游戏对象的名称,然后传入您希望它在隐藏UI画布之前等待多少秒。第三个参数是可选的,如果您想再次显示这个UI,它就在那里。传递给它再次显示隐藏的GUI。
用法:
StartCoroutine (hideGUI (gameObject, 2.0f)); //Wait 2 seconds then hide UI
StartCoroutine (hideGUI (gameObject, 2.0f, true)); //Wait 2 seconds then show UI发布于 2015-05-18 14:23:18
有了团结,他们就有了一个WaitForSeconds函数,它可以等待x秒,然后再做一些事情。您可以使用它,所以当级别启动时,您需要等待5-6秒,然后隐藏GUI。
yield return new WaitForSeconds (5);
// GUI hide code发布于 2015-05-18 14:54:40
可以使用延迟的Invoke,例如:
public class Hide : MonoBehaviour
{
public float after = 5.0f;
void Start()
{ Invoke("Disable", after); }
void Disable()
{ gameObject.SetActive (false); }
}也可以使用Start()返回IENumerator,例如:
public class Hide : MonoBehaviour
{
public float after = 5.0f;
IEnumerator Start()
{
yield return new WaitForSeconds(after);
gameObject.SetActive (false);
}
}https://stackoverflow.com/questions/30305562
复制相似问题