2014-10-18 4 views
1

Так что это мой скачок в стене, он отлично работает, и я даже могу заставить персонажа отскочить назад от стены немного, когда стена спрыгивает с левой стены, используя SetHorizontalForce (10);. Поэтому проблема, с которой я сталкиваюсь, - это когда я положил SetHorizontalForce (-10);, чтобы отскакивать от правой стены, поэтому он не может больше подняться по стене, вместо этого он отскакивает от стены, но не получает больше высоты. Является ли это SetHorizontalForce (-10); каким-то образом воздействием оси y символа? Или что-то еще происходит совсем?Имея проблемы при попытке отскока от стены со стеной, прыжок C#

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; 
    } 
} 

EDIT: мне было предложено включить мой 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

Странно, я не могу найти SetHorizontalForce в документах. Это что-то, что вы перевернули? Если да, тогда вы могли бы включить его? – Terrance

+0

@ Поверенный Эй, я включил свой SetHorizontalForce, если что-то еще нужно, не стесняйтесь спрашивать. Спасибо, что посмотрели. – kenyurick

+0

Это также помогло бы, если бы вы показали мне остальную часть класса. Где-то вы устанавливаете скорость на фактическую скорость игрового объекта? Также вы вызываете Wall Jump в FixedUpdate или Update или какой-либо другой метод \ co-rout? – Terrance

ответ

0

Итак, вы задаетесь вопросом, почему он не идет вверх больше, если я правильно понять проблему.

Я не вижу, что вы действительно добавляете силу в вертикальном направлении. Если вы хотите, чтобы они продолжали подниматься вверх, вам нужно отправить их в горизонтальном и вертикальном направлениях, чтобы они могли удерживать прыжки с высоты в направлении вверх, иначе они используют только начальную силу скачка и один раз вершина достигнута, они только начнут падать все больше и больше.

Если вам нужно больше объяснений, дайте мне знать, но да, добавьте туда вертикальный прыжок и посмотрите, не решит ли это вашу проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^