Хорошо, Ive опубликовал всюду об этом, но не может найти ответ. У меня есть игра C#, сделанная в Unity, и я использую код для перехода между моей незанятой анимацией в мой цикл ходьбы, в зависимости от пользователей.Как различать последовательные нажатия и одиночные краны? Unity анимация?
Моя проблема в том, что я не могу различать последовательные и одиночные краны. Я попытался увеличивать ints и устанавливать их на ноль, когда персонаж перестает двигаться, таймеры, все, но не получают надежных результатов.
В основном мой персонаж имеет 3 состояние, что ему нужно, чтобы переключаться между в зависимости от количества нажатий:
Idle = не постукивания, так что он не двигается (отводы вызвать 1 блок вперед) пошагового = 1 кран, чередуются между вправо или влево непрерывная ходьбы = множество ответвлений, так что он постоянно двигается
до сих пор Ive сделали это: основой, если его текущая позиция не его последний (он двигается) у меня есть таймер, который записывает свое время гулять пешком. Если этот таймер находится выше примерно того времени, когда ему требуется 1 шаг, я перехожу к анимации непрерывной ходьбы. Если он остановится, значит, таймер установлен на ноль.
Причина: Мне нужно состояние одного шага (и это состояние работает хорошо), я должен чередоваться между правой и левой, а не просто играть часть полного цикла, вот почему у меня есть смещение, которое перемещается по полной анимации с шагом.
if (currentPos != lastPos && didCollide == false) {
//print ("moving now");
animator.SetBool ("isWalking", true);
if (timeWalking >= 0.1f) {
//this is for continuous cycle
animator.SetBool("contWalking", true);
} else {
if (InputManager.stepCount % 2 != 0) {
//individual cycle left
animator.SetFloat ("walkOffset",animOffset);
} else {
//individual cycle right
animator.SetFloat ("walkOffset",animOffset);
}
animOffset += 0.1f;
}
timeWalking += Time.deltaTime;
} else {
//stopped
animator.SetBool ("isWalking", false);
animator.SetBool("contWalking", false);
timeWalking = 0.0f;
}
lastPos = currentPos;
И:
Проблема время, кажется, изменяется, и это может заставить его непрерывный цикл лишь изредка, и то Glitchy. Существует много заиканий, так как в основном он переходит в одноступенчатое состояние и не может продолжать работать, даже когда он некоторое время движется.
Я вне идеи. Как я могу перейти на непрерывный цикл ходьбы, исходя из того, что последовательное нажатие? Не думайте, что таймеры - это путь. Это возможно?