所以这是我的墙跳,效果很好,我什至可以让角色在从左墙跳下时稍微从墙上反弹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;
}