尝试使用跳墙 C# 从墙上弹起时出现问题

本文关键字:问题 | 更新日期: 2023-09-27 18:26:53

这是我的墙跳,它工作正常,我甚至可以让角色在墙上跳下时稍微从墙上弹回来,使用 SetHorizontalForce (10); .所以我遇到的问题是,当我把SetHorizontalForce (-10);从右墙上弹起来时,它使角色不能再爬上墙,而是从墙上弹回来,但没有获得更多的高度。这SetHorizontalForce (-10);以某种方式影响角色的 y 轴吗?还是完全发生了其他事情?

public void WallJump()
{   
    if (State.HasCollisions) {
        AddForce (new Vector2 (0, Parameters.JumpMagnitude));
        _jumpIn = Parameters.JumpFrequency;
    }
    if (State.IsColidingLeft) {
        SetHorizontalForce (10);
        _dashIn = Para.DashFrequency;
    }
    else if (State.IsColidingRight){
        SetHorizontalForce (-10);
        _dashIn = Para.DashFrequency;
    }
}

编辑:我被要求包括我的SetHorizontalForce,所以这里是:

private Vector2 _velocity;
    public void SetHorizontalForce(float x)
    {
    _velocity.x = x;
    }

编辑2:这就是我的_velocity的处理方式。

public void AddForce(Vector2 force)
{
    _velocity = force;
}
public void SetForce(Vector2 force)
{
    _velocity += force;
}
public void SetHorizontalForce(float x)
{
    _velocity.x = x;
}
public void SetVerticalForce(float y)
{
    _velocity.y = y;
}

尝试使用跳墙 C# 从墙上弹起时出现问题

所以你想知道如果我正确理解问题,为什么它不再上升。

我没有看到你实际上在垂直方向上增加了一个力。如果你想让它们继续向上攀爬,那么你需要让它们在水平和垂直方向上发送,以便它们保持向上跳墙,否则,它们只是在使用初始跳跃力,一旦达到顶点,它们就会开始越来越向下。

如果您需要更多解释,请告诉我,但是是的,也在其中添加一些垂直跳转,看看是否可以解决您的问题。