试图用墙跳C#反弹墙时遇到问题

时间:2014-10-18 02:20:11

标签: c# unity3d 2d unity3d-2dtools

所以这是我的墙跳,它工作正常,甚至当墙使用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;
    }
}

编辑:我被要求包含我的SetHorizo​​ntalForce,所以这里是:

private Vector2 _velocity;

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

EDIT2:这就是我的_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;
}

1 个答案:

答案 0 :(得分:0)

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

我没有看到你实际上在垂直方向上添加力。如果你想让它们继续向上攀爬,那么你需要在水平方向和垂直方向上发送它们,以便它们保持墙壁向上跳跃,否则,它们只使用初始跳跃力,并且一次到达顶点后,它们才会开始越来越多地下降。

如果您需要更多解释,请告诉我,但是,在那里添加一些垂直跳跃,看看是否能解决您的问题。