public class PlayerMovement : MonoBehaviour
{
public static PlayerMovement Instance { get; private set; }
private PlayerInput playerInput;
public Vector2 inputVec;
public bool canMove = true;
public float spd = 2f; // 속도
void FixedUpdate()
{
// canMove가 false일 때
if (!canMove)
{
return; // 이 밑으로 다 무시
}
// 아니라면 속도 * 방향으로 이동
rb2D.MovePosition(rb2D.position + inputVec * spd * Time.fixedDeltaTime);
}
public void OnMove(InputAction.CallbackContext context)
{
// 키 상태를 저장
inputVec = context.ReadValue<Vector2>();
}
}
이렇게 바꿔보샘
정말 고마워. 사실 AI랑 열심히 씨름하다보니 그냥 if (!canMove) {return;} 이렇게 하는 쉬운 대안이 마침내 나와서 환호성 지르고 있었어. 근데 OnMove()에서 if (context.performed), else if (context.canceled) 구분 안 하고 그냥 inputVec = context.ReadValue();만 남기는 건 생각도 못 했네. 새해 복 많이 받아!