角色特定能力适用于所有角色?

问题描述 投票:0回答:1

我不擅长编码。我知道基础知识,但我仍在学习。基本上,我正在开发一款类似于 Super Meat Boy 的 2D 平台游戏,并且观看了创建基本玩家移动系统的教程。然后我进去添加了额外的布尔值,这样我就可以切换到不同的角色,并给每个角色一定的统计数据和新的能力之类的东西。

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 独有的浮动能力。

我还没有真正尝试过其他方法,只是茫然地看着我的代码墙,想知道为什么它不起作用。我尝试将“!isTurdo”放入if语句中,这是另一个角色的bool,但即使isTurdo bool设置为true,他仍然具有浮动能力。

我在这个问题仍在审核发布时得到了回答,并且答案有效。我用“if ((_jumpBufferTimer > 0f && isMif && InputManager.JumpIsHeld && _isJumping && _isFalling) || (_isFastFalling && isMif))”替换了之前的 if 语句,现在它可以工作了。我不知道如何在此处分配评论作为解决方案,因此我正在编辑此内容以让大家知道。

c# unity-game-engine if-statement 2d
1个回答
0
投票

我只能猜测,但也许应该是

... && (_isFalling || _isFastFalling)

注意

( )
请记住,在 c# 中,&& 运算符比 || “更强”意味着 && 是相互绑定的纵梁并首先执行..所以最后一个 ||仅适用于最后一个标志,因此最后一个标志可以推翻其他一切

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.