#1

  void OnDash(InputValue value)
  {
      if (value.isPressed)
      {
          if(dashCount > 0)
          {
              Vector2 dashDir = new Vector2(Input.mousePosition.x, Input.mousePosition.y).normalized;
              rigidbody.AddForce(dashDir*dashPower, ForceMode2D.Impulse);
              //dashCount--;
          }
      }
  }

사실 처음에는 마우스 x,y 좌표를 받아서 Vector2로 정규화 하면서 받고, 해당 방향으로 AddForce 해주면 될 줄 알았다.

Honeycam 2024-03-05 17-09-26.gif

돌려보니깐 의도와는 다르게 한쪽 방향으로만 힘을 받는 것을 볼 수 있었다.

Untitled

마우스 좌표를 받아오는 것에 문제가 있나 싶어서 dashDir를 디버그를 통해 확인해 보니, 스크린을 기준으로 좌표를 받아와서 생기는 문제였다.

#2

  void OnDash(InputValue value)
  {
      if (value.isPressed)
      {
          if(dashCount > 0)
          {
              Vector2 dashDir = Camera.main.ScreenToWorldPoint(Input.mousePosition).normalized;
              Debug.Log(dashDir);
               rigidbody.AddForce(dashDir.normalized*dashPower, ForceMode2D.Impulse);
              //dashCount--;
          }
      }
  }

그래서 스크린 기준이 아니라 인 게임 월드를 기준으로 좌표를 받아와 방향을 설정해 줬다,

Honeycam 2024-03-05 17-30-52.gif

그런데 뭔가… 어색하다..