これは私のウォール ジャンプです。正常に動作し、 を使用して左側の壁からウォール ジャンプをしたときに、キャラクターを壁からわずかに跳ね返すことさえできます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;
}