接下来得封装对话才行,不封装不好用。接下来要大量使用的。
首先,让nextStr作为所有句子的集合。
有一个过程计数m_i,作为游戏进行标志,通过if的判断,来了解已经进行到哪里了。
还有一点是,如果你中途点击后,它能立即显示所有的文字,中断动画才行。
这里有一个注意点就是,尽量把所有参数设置成private,如果设置成public,那么就会在unity的控制面板中显示,那么在更新脚本的时候控制面板中的参数不会改变,就以为是unity没有更新脚本,其实是不对的。
人的点击进度呢,用OnClick+m_i控制
void OnClick()
{
if (m_i < 6)
{ // 前6个都是对话
if(isActive){
OnFinish();
}
else{
m_dialog.text = "";
isActive = true;
}
}
else // 切换场景
{
}
}
简单修改了一下说话场景,大概能用了,只是不容易理解:
void Update()
{
if (isActive)
{
timer += Time.deltaTime;
if (timer >= 0.05)
{
timer = 0;
currentPos++;
m_dialog.text = strs[m_i].Substring(0, currentPos);//刷新文本显示内容
if (currentPos >= strs[m_i].Length)
{
OnFinish();
}
}
}
}
void OnFinish()
{
isActive = false;
timer = 0;
currentPos = 0;
m_dialog.text = strs[m_i];
m_i++;
}