
사용자의 입력(키보드.마우스,게임패드,터치 등)을 처리하는 시스템
- 특징
. Unity의 새로운 입력 처리 방식
. 다양한 입력 장치를 쉽게 통합 가능
. 키 매핑 변경이 간단하며, 이벤트 기반 구조
기본 설정창
Maps에 어떤 오브젝트에 적용 시킬지 선택
Actions에 동작들을 설정
Binding properties 세부적인 조건 부여(키보드인지, 컨트롤러인지, 터치인지, 등등)
void OnMove(InputValue inputValue)
{
movementDirection = inputValue.Get<Vector2>();
movementDirection = movementDirection.normalized;
}
void OnLook(InputValue inputValue)
{
Vector2 mousePosition = inputValue.Get<Vector2>();
Vector2 worldPos = camera.ScreenToWorldPoint(mousePosition);
lookDirection = (worldPos - (Vector2)transform.position);
if (lookDirection.magnitude < .9f)
{
lookDirection = Vector2.zero;
}
else
{
lookDirection = lookDirection.normalized;
}
}
void OnFire(InputValue inputValue)
{
if (EventSystem.current.IsPointerOverGameObject())
return;
isAtacking = inputValue.isPressed;
}
Action에 각각 설정해주면 간단하게 완성
강의에서 배운 내용 토대로 개인 과제에 직접 적용

먼저 Unity Input System을 채택
좌,우 움직임을 설정 점프도 같이 설정
먼저 움직임을 구현해보자
ai의 주석 처리 기능은 정말 좋다
// 이동 속도 (오른쪽/왼쪽 이동할 때 곱해질 값)
[SerializeField] private float movementSpeed = 5f;
// 입력받은 이동 방향을 저장할 벡터
private Vector2 movementDirection;
// Rigidbody2D 컴포넌트 캐싱
private Rigidbody2D _rigidbody;
// 컴포넌트 초기화 (시작할 때 Rigidbody2D 가져오기)
private void Awake()
{
_rigidbody = GetComponent<Rigidbody2D>();
}
// 물리 기반 이동 처리 (이동 방향 * 속도, 점프는 y축 그대로 유지)
private void FixedUpdate()
{
_rigidbody.velocity = new Vector2(movementDirection.x * movementSpeed, _rigidbody.velocity.y);
}
// 이동 입력 처리 (WASD / 방향키 / 패드 등)
void OnMove(InputValue inputValue)
{
movementDirection = inputValue.Get<Vector2>().normalized;
}
여기에 점프도 추가
// 점프 힘 (점프할 때 위로 밀어줄 힘의 크기)
[SerializeField] private float jumpForce = 7f;
// 바닥으로 인식할 레이어 (예: Ground 레이어)
[SerializeField] private LayerMask groundLayer;
// 땅 체크용 위치 기준점 (플레이어 발 밑에 위치한 빈 오브젝트)
[SerializeField] private Transform groundCheck;
// 땅 체크용 원의 반지름 (너무 작으면 안 닿고, 너무 크면 옆 벽에도 닿음)
[SerializeField] private float groundCheckRadious = .2f;
// 점프 입력 처리 (버튼 눌렀을 때 & 바닥에 있을 때만 점프)
void OnJump(InputValue inputValue)
{
if (inputValue.isPressed && IsGrounded())
{
// 위쪽으로 점프 힘을 줌 (순간적인 힘: Impulse)
_rigidbody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
}
}

움직임은 이렇게 설정 완료
내일은 상호작용 해서 다른 씬으로 넘어가 게임안에 게임을 불러오는 느낌으로 만들어보자
음... 마크다운에 영상을 올리는 방법은 외부 영상업로드 사이트를 이용해서 url을 들고오거나
아니면 찍은 영상을 gif 파일로 변환해서 올리는 작업을 해야 한다는데
영상을 먼저 gif로 변환해서 올려봤는데 오....
한국인이 싫어하는 속도.....ㅋㅋ.....
너무 느려서 결국 인터넷에 찾아서 gif 속도 올리는 사이트 발견
뭔가... 뭔가 분명 더 편한 방법이 있을것 같은데....