Code: Select all
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;
}
}
Ich habe nicht wirklich viel anderes ausprobiert, sondern nur ausdruckslos auf meine Codewand geschaut und mich gefragt, warum es nicht funktioniert. Ich habe versucht, „!isTurdo“ in die if-Anweisung einzufügen, was der Boolwert für ein anderes Zeichen ist, aber selbst wenn der isTurdo-Boolwert auf „true“ gesetzt ist, verfügt er immer noch über die Floating-Fähigkeit.
I Ich habe diese Frage beantwortet, während sie noch zur Veröffentlichung geprüft wurde, und die Antwort hat funktioniert. Ich habe meine vorherige if-Anweisung durch „if ((_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling) || (_isFastFalling && isMif))“ ersetzt und jetzt funktioniert es. Ich weiß nicht, wie ich hier einen Kommentar als Lösung zuweisen soll, daher bearbeite ich dies, um es euch allen mitzuteilen.