Код: Выделить всё
if (_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling || _isFastFalling)
{
_isFloating = true;
}
if (_isFloating)
{
VerticalVelocity = -0.001f;
VerticalVelocity += MoveStats.Gravity * Time.fixedDeltaTime;
if (InputManager.JumpWasReleased && !InputManager.JumpIsHeld)
{
VerticalVelocity = -0.01f;
VerticalVelocity += MoveStats.Gravity * Time.fixedDeltaTime;
_isFloating = false;
}
}
Мне казалось, что я правильно настроил оператор if, но даже если для isMif bool установлено значение false, другие символы все равно обладают способностью плавать, которая должна быть эксклюзивной для Mif.
p>
Я особо ничего не пробовал, просто тупо смотрел на свою стену кода и задавался вопросом, почему это не работает. Я попытался поместить "!isTurdo" в оператор if, который является логическим значением для другого символа, но даже когда для isTurdo bool установлено значение true, у него все еще есть плавающая способность.
I получил ответ на этот вопрос, пока он еще находился на рассмотрении для публикации, и ответ сработал. Я заменил свой предыдущий оператор if на «if ((_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling) || (_isFastFalling && isMif))», и теперь он работает. Я не знаю, как назначить комментарий в качестве решения здесь, поэтому я редактирую это, чтобы вы все знали.
Подробнее здесь: https://stackoverflow.com/questions/793 ... characters