所以这是我的墙跳,它工作正常,甚至当墙使用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;
}
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;
}
答案 0 :(得分:0)
所以,如果我正确理解问题,你就会想知道为什么它不再上升。
我没有看到你实际上在垂直方向上添加力。如果你想让它们继续向上攀爬,那么你需要在水平方向和垂直方向上发送它们,以便它们保持墙壁向上跳跃,否则,它们只使用初始跳跃力,并且一次到达顶点后,它们才会开始越来越多地下降。
如果您需要更多解释,请告诉我,但是,在那里添加一些垂直跳跃,看看是否能解决您的问题。