유니티의 이동
유니티에서 이동을 구현하는 방법은 게임의 종류와 요구 사항에 따라 다를 수 있지만 가장 기본적인 이동 구현 방법은 다음과 같다.
캐릭터 또는 오브젝트 만들기: 이동할 대상, 주로 플레이어 캐릭터 또는 다른 게임 오브젝트.
Rigidbody2D 또는 Rigidbody 컴포넌트 추가: 이동을 구현하려면 오브젝트에 Rigidbody2D(2D 게임) 또는 Rigidbody(3D 게임) 컴포넌트를 추가.
스크립트 작성: C# 스크립트를 작성하여 오브젝트의 이동 로직을 구현.
입력 처리: 주로 플레이어의 입력을 감지하여 이동 방향을 결정.
using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed = 5.0f; void Update() { // 입력 감지 float horizontalInput = Input.GetAxis("Horizontal"); float verticalInput = Input.GetAxis("Vertical"); // 이동 방향 계산 Vector3 moveDirection = new Vector3(horizontalInput, verticalInput, 0); // 정규화된 방향으로 이동 moveDirection.Normalize(); // 이동 벡터에 속도를 곱하여 이동 transform.Translate(moveDirection * speed * Time.deltaTime); } }
New Input System
New Input System의 핵심 개념
Input Action
입력 이벤트를 추상화하고 정의하는 데 사용되며, 게임에서 발생하는 다양한 입력 동작(액션)을 정의하고 처리하는 데 도움을 줌.
예를 들어 "점프", "공격" 등의 행동을 정의하고, 이러한 행동을 트리거하는 키 또는 버튼을 지정.
Input Action Asset
여러 개의 입력 행동을 그룹화하는 방법.
Player Input Component
New Input System에 추가된 새로운 컴포넌트로, 자동으로 입력 행동을 처리하고 해당 게임 오브젝트에 메시지를 보냄.
New Input System의 장점
다양한 플랫폼과 입력 장치에 대해 일관된 방식으로 작동.
플레이어가 게임 내에서 자신의 입력 설정을 변경할 수 있도록 지원.
여러 플레이어가 동일한 장치에서 게임을 플레이하거나, 각각의 장치에서 게임을 플레이할 때 입력을 쉽게 처리할 수 있음.
New Input System 사용하기
Package Manager에서 Unity Registry로 변경해서 Input System 추가하기.
설치를 다하면 경고창이 뜨는데 기존 Input System 대신 새로운 Input System을 활성화 할거냐
라는 내용이므로 Yes를 누르면 Unity가 다시 로드 된다.
New Input Sytem 준비(Input Actions 에셋 생성 및 세팅)
Create → Input Action 클릭.
InputAction 더블클릭.
No Control Schemes → Add Control Scheme.
이름 수정 → + 버튼 → Keyboard 와 Mouse 추가.
Action Maps → + → Player.
Move Action 수정.
Add Up#Down#Left#Right Composite 클릭 후 버튼 분배.
Player Input 컴포넌트의 Actions에 아까 만든 Input Actions 넣어주기
이렇게 해서 키 입력 세팅은 끝났고 입력받은 키 내용을 스크립트에 전달 하고 그 값에 따라 처리를 하는 코드를 작성하면 된다.
Input.GetAxis
유니티의 입력 시스템에서 사용되는 메서드.
입력 축의 값을 반환하며 주로 키보드나 조이스틱과 같은 입력 장치의 입력을 나타냄.
GetAxis 메서드는 -1부터 1 사이의 값을 반환하는데, 입력 장치의 움직임에 따라 해당 값이 변경.
값이 0에 가까울수록 입력이 없거나 중립 상태를 나타내며, 양수 값은 양 방향 입력을, 음수 값은 음 방향 입력을 나타냄.
플레이어의 이동 속도나 회전 속도와 같은 변수에 적용하여 게임 오브젝트를 제어.
GetAxisRaw
는 입력 값을 부드럽게 보간하지 않기 때문에 키를 누르면 즉시 1.0 또는 -1.0과 같은 원시 입력 값을 반환.
09:00 ~ 10:00 : 알고리즘 코드카타
10:00 ~ 10:30 : 팀 회의
10:30 ~ 14:00 :
12시-1시: 점심식사
14:00 ~ 18:00
6시-7시: 저녁식사
19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
21:00 : 내일은 위한 휴식!