我正在Unity中开发一个迷你游戏,玩家可以获得几个连续的句子来纠正。玩家必须使用屏幕上提供的按钮来插入单词和标点符号来修复连续剧。使用A和D或箭头键移动,玩家将下划线(_)字符放在当前位置的下一个空白处,而下划线则用作插入单词和标点符号的光标。这是通过For循环完成的,只要找到下一个空格就会中断:
ApplyStyling()
在每个空格处创建一个红色下划线。
RemoveStyling()
删除每个空格的红色下划线。
void Advance()
{
//Find the next blank space.
RemoveStyling ();
for (int i = currentPosition; i <= sentence.text.Length; i++)
{
//Make sure the user actually advances, and not stick to the same
//blank space.
if (sentence.text [i] == ' ' && i != currentPosition)
{
currentPosition = i;
ApplyStyling ();
Debug.Log (currentPosition);
break;
}
}
}
void Retreat()
{
RemoveStyling ();
for (int i = currentPosition; i < sentence.text.Length && i >= 0; i--)
{
//Make sure the user actually advances, and not stick to the same
//blank space.
if (sentence.text [i] == ' ' && i != currentPosition)
{
currentPosition = i;
ApplyStyling ();
Debug.Log (currentPosition);
break;
}
}
}
我正在使用For循环,因为只要玩家添加单词或标点符号,空格的位置就会移动。
问题是,每当玩家前进到字符串中的最后一个空白区域,或者撤退到第一个空格时,他们就可以再次前进或后退。这会导致下划线因默认情况下激活RemoveStyling而消失。当玩家回来时,将跳过下一个空格的第一个或最后一个空格。
我如何检测玩家是否位于字符串的第一个或最后一个空格处,以防止他们进一步前进或后退?
感谢。