C# 游戏对象设置活动couritine之前的延迟
我试着在按下按钮激活游戏对象(两个面板)之前延迟3秒。我在单击panelview()时指定了按钮,但我找不到如何将couritine作为IEnumerator写入其中 有人能帮我吗?谢谢 以下是我想将couritine组合成的代码部分:C# 游戏对象设置活动couritine之前的延迟,c#,unity3d,C#,Unity3d,我试着在按下按钮激活游戏对象(两个面板)之前延迟3秒。我在单击panelview()时指定了按钮,但我找不到如何将couritine作为IEnumerator写入其中 有人能帮我吗?谢谢 以下是我想将couritine组合成的代码部分: public void panelview() { if (totalenergy == 0) { panel2.gameObject.SetActive(true); } if (totalene
public void panelview()
{
if (totalenergy == 0)
{
panel2.gameObject.SetActive(true);
}
if (totalenergy >= 1)
{
panel.gameObject.SetActive(true);
}
}
这应该可以做到(希望它可以编译-我没有检查它)
在这种情况下,您也可以在不使用任何协同程序的情况下使用:
public void PanelView()
{
Invoke(nameof(ShowPanel), DELAY);
}
private void ShowPanel()
{
if (totalenergy == 0)
{
panel2.gameObject.SetActive(true);
}
else if (totalenergy >= 1)
{
panel.gameObject.SetActive(true);
}
}
或者作为一个
其中,DELAY
是以秒为单位的所需延迟
从用户体验的角度来看,尽管我认为在点击按钮后,给用户反馈3秒钟是相当长的;)
public void PanelView()
{
Invoke(nameof(ShowPanel), DELAY);
}
private void ShowPanel()
{
if (totalenergy == 0)
{
panel2.gameObject.SetActive(true);
}
else if (totalenergy >= 1)
{
panel.gameObject.SetActive(true);
}
}
public void PanelView()
{
StartCoroutine (ShowPanelAfterDelay(DELAY));
}
private IEnumerator ShowPanelAfterDelay(float delay)
{
yield return new WaitForSeconds (delay);
if (totalenergy == 0)
{
panel2.gameObject.SetActive(true);
}
else if (totalenergy >= 1)
{
panel.gameObject.SetActive(true);
}
}