У меня есть простая игра с смахиванием - когда отображается стрелка вправо, пользователь должен смахнуть вправо (а также для других направлений). Это мой код (он просто повторяется, поэтому я опубликую только одно направление):
if (left && frameCounterLeft <= maxFrames && isLeftNow)
{
//Reset the other directions
right = false;
up = false;
down = false;
tap = false;
//First time
if (frameCounterLeft == 0)
ThrowLeft(true);
else
ThrowLeft(false);
//Animation
frameCounterLeft++;
//End animation
if (frameCounterLeft == maxFrames)
{
ClonePlayer();
frameCounterLeft = 0;
}
}
else if (left && frameCounterLeft == 0 && !isLeftNow)
{
GameOver();
}
Метод TheowLeft:
void ThrowLeft(bool FirstTime)
{
if (FirstTime)
{
UpdateScore();
left = false;
}
player.transform.Translate(new Vector3(player.transform.position.x - throwVelocity, 0));
player.transform.Rotate(0, throwVelocity * 5, 0);
}
Метод UpdateScore:
void UpdateScore()
{
score++;
if (currentTimeLimit - timeLeft <= 0.5f * currentTimeLimit && ultraMeter.value < 35)
ultraMeter.value++;
if (score % ultraMeter.maxValue == 0)
currentTimeLimit = 0.9f * currentTimeLimit;
timeLeft = currentTimeLimit;
if(ultraMeter.value == ultraMeter.maxValue)
ultraReady = true;
}
влево / вправо / вверх / вниз = пользовательский ввод влево / вправо / вверх / вниз смахивание - рабочий (проверенный) касание = если пользователь касается экрана - рабочий (проверенный) framesCounterLeft = для анимации, состоящей из пары кадров isLeftNow = if стрелка влево отображается прямо сейчас - работает (проверено)
GameOver () вызывается, когда я делаю любое свайп (даже если это свайп вправо).
Например, - отображается стрелка влево. Когда я проведу пальцем влево (или любое другое направление), вызывается GameOver (). Я хочу, чтобы он вызывался только в том случае, если проведено неверное сканирование (например, сейчас есть левая карта, и я проводю вправо / вниз / вверх или нажимаю)
Пожалуйста, помогите мне, я хочу продолжить разработку этой игры.