您的位置:首页 > 移动开发 > Unity3D

Unity3d协程实现倒数计时

2016-05-17 14:57 405 查看
Unity3d协程的知识,不了解的同学可以在网上查找一下相关资料或者看一下Unity3D协程介绍 以及 使用

下面介绍Unity3d协程实现倒数计时,实现代码:

public class GameManager : MonoBehaviour
{
private bool _BoolIsDisplayNumber = false;//是否显示数字
private bool _BoolIsDisplayGo = false;//是否显示go
private float _IntDisplayNumber;
private string _StringDisplayNumber;

public Texture TextNum3;//要显示的图片3
public Texture TextNum2;
public Texture TextNum1;
public Texture TextGo;

void Start()
{
StartCoroutine(DisplayGameStartCountDown());
}

IEnumerator DisplayGameStartCountDown()
{
yield return new WaitForEndOfFrame();

//显示3
_BoolIsDisplayNumber = true;
_IntDisplayNumber = 3;
yield return new WaitForSeconds(1f);
_BoolIsDisplayNumber = false;
yield return new WaitForSeconds(0.5f);

//显示2
_BoolIsDisplayNumber = true;
_IntDisplayNumber = 2;
yield return new WaitForSeconds(1f);
_BoolIsDisplayNumber = false;
yield return new WaitForSeconds(0.5f);

//显示1
_BoolIsDisplayNumber = true;
_IntDisplayNumber = 1;
yield return new WaitForSeconds(1f);
_BoolIsDisplayNumber = false;
yield return new WaitForSeconds(0.5f);

//显示go
_BoolIsDisplayGo = true;
_StringDisplayNumber = "go";
yield return new WaitForSeconds(1f);
_BoolIsDisplayGo = false;
yield return new WaitForSeconds(0.5f);
}

void OnGUI()
{
//使用GUI显示图片
if (_BoolIsDisplayNumber)
{
if (_IntDisplayNumber == 3)   //显示3
{
GUI.DrawTexture(new Rect(Screen.width / 2 - TextNum3.width / 2, Screen.height / 2 - TextNum3.height / 2,
TextNum3.width, TextNum3.height), TextNum3);
}
else if (_IntDisplayNumber == 2)   //显示2
{
GUI.DrawTexture(new Rect(Screen.width / 2 - TextNum2.width / 2, Screen.height / 2 - TextNum2.height / 2,
TextNum2.width, TextNum2.height), TextNum2);
}
else if (_IntDisplayNumber == 1)   //显示1
{
GUI.DrawTexture(new Rect(Screen.width / 2 - TextNum1.width / 2, Screen.height / 2 - TextNum1.height / 2,
TextNum1.width, TextNum1.height), TextNum1);
}
}

if (_BoolIsDisplayGo)
{
if (_StringDisplayNumber == "go")   //显示go
{
GUI.DrawTexture(new Rect(Screen.width / 2 - TextGo.width / 2, Screen.height / 2 - TextGo.height / 2,
TextGo.width, TextGo.height), TextGo);
}
}
}
}
具体实现代码如上所示,并不复杂。

在Inspector面板为Texture赋值,直接将图上拖上去就可以了。



运行效果:



这样就完成了协程实现倒数计时。不懂的同学可以私聊哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: