目标:实现数字的累加和文字的逐字增加
为什么这么做?增加游戏的体验和观感,不至于太生硬
可以用在哪里:
- 得分,生命值,魔力值等含有数字的地方,可以实现数字的累加/累减
- 对话框,提示框,logo显示,等含有文字的地方,可以实现文字的逐字增/减
好了,废话不多说,直接上核心代码:
就不展示完整的了,因为没用,知道核心代码就行了,看完整的反而容易乱。
private IEnumerator ShowScore()
{
for (;
GameManager.instance.currentNum <= GameManager.instance.totalScoreNum;
GameManager.instance.currentNum += 100)
{
yield return new WaitForSeconds(0.01f);
GameManager.instance.SetScore();
}
}
在这个协程里,我们使用for循环来每增加currentNum的值,并且每一次循环我们通过
yield return new WaitForSeconds(0.01f);
语句来控制代码的执行速度(可以这么理解)
这行代码表示等待0.01秒后再执行下一行代码,我们下一行代码执行了GameManager里的更新UI的函数,这个函数会把currentNum的值给到UI面板中的得分文本
好了,这不多就是这些。协程也可以用来制作对话框的逐字显示
例如:
for (int i = 0; i < str.Length; i++)
{
dialog.text += i;
yield return new WaitForSeconds(0.01f);
}
这个也是对话框的核心代码,同样是放在协程里执行。
嗯,以上就是关于协程在游戏开发中最基础的应用了。
其实数字的累加用单纯的for循环来执行也是可以的。。。但是增加的速度无法控制,体验很不好。