【问题标题】:Having issues when trying to bounce off a wall with wall jump C#尝试使用墙跳 C# 从墙上反弹时遇到问题
【发布时间】:2014-10-18 02:20:11
【问题描述】:

所以这是我的墙跳,效果很好,我什至可以使用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;
}

【问题讨论】:

  • 很奇怪,我在文档中找不到 SetHorizo​​ntalForce。那是你自己滚的东西吗?如果是的话,你能把它包括进来吗?
  • @Terrance 嘿伙计,我已经包含了我的 SetHorizo​​ntalForce,如果需要其他任何内容,请随时询问。感谢您的观看。
  • 如果您也向我展示课程的其余部分,这也会有所帮助。您是否在某处将 _velocity 设置为游戏对象的实际速度?你也是在 FixedUpdate 或 Update 或其他一些方法\协程中调用 Wall Jump 吗?
  • @Terrance 添加了我的 _velocity
  • 哦,那你不是在使用 unity2d 刚体物理吗?你在滚动你自己的物理吗?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多