주녘공부일지

[ShootingGame] 1. 플레이어 이동 구현 본문

GameEngine/Unity - Lecture

[ShootingGame] 1. 플레이어 이동 구현

주녘 2022. 1. 25. 20:21
728x90

Player.cs
0.00MB

 

0. 준비하기

 

1. 플레이어 이동 

class Player - 플레이어 이동 로직과 플래그 변수

Move() : Updata문에서 실행 // 캡슐화

- Input.GetAxisRaw() : 방향값 추출 (-1, 0, 1)

 RawData : 가공되지 않은 데이터, 등을 뜻함, Axis :

+ transform 이동에는 Time.DeltaTime 사용!

+ 플래그 변수를 사용해 경계 이상 넘지 못하도록 제한 // 2번 충돌감지

 

 

2. 경계 설정 (플레이어 이동 불가 로직)

- OnTiggerEnter2D(플래그 설정) : 플래그 변수 true (이동 불가 상태)

- OnTriggerExit2D (플래그 지우기) : 플래그 변수 false (이동 가능 상태)

 

+ 4방향 각각 콜라이더로 경계를 설정

https://godgjwnsgur7.tistory.com/4

 

[Unity] Box Collider 2D

Box Collider 2D : 포지션, 폭과 높이가 로컬 좌표 공백 안의 직사각형 형태로 축에 정렬됨 Trigger : 물리적 연산을 하지 않고 충돌을 감지할 수 있음 (Is Trigger 체크) - OnTriggerEntere2D : 오브젝트에 연결..

godgjwnsgur7.tistory.com

+ 리지드바디로 충돌감지 (타입은 Static로 설정) // 1번에서 제한하는 로직

https://godgjwnsgur7.tistory.com/3

 

[Unity] Rigidbody 2D

Rigidbody2D : 오브젝트를 물리 엔진이 제어하게 만듬 Body Type - Dynamic : 밀어내는 등 물리연산 o - Kinematic : 밀어내는 등 물리연산 x ( 물리연산이 없기 때문에 충돌감지만 가능해짐 -> 로직을 짜서 막

godgjwnsgur7.tistory.com

 

3. 플레이어 애니메이션

Animator 컴포넌트를 추가하고 Center, Left, Right 이동 애니메이션을 추가하고

왼쪽 이미지부터 1번 ~ 3번

- 1번 : 파라미터 Input 추가 (int형) // Input.GetAxisRaw()값을 그대로 사용할 예정

- 2번 : 스테이트간의 트랜지션을 추가

- 3번 : 트랜지션의 동작 조건을 Equals (같으면 실행) // Center 0, Left -1, Right 1

 

- 키를 눌렀을때 즉각적으로 애니메이션 변경을 하기 위해 Has Exit Time 체크를 해제

- 2D 스프라이트 애니메이션이기 때문에 Settings에 Duration은 0으로 설정

 + // 3D에서는 부드럽게 모션을 변경하기 위하여 사용하지만, 2D에선 잘 사용하지 않음

class Player - Move()

 

애니메이터를 선언하여 버튼이 눌렸을때, 누른 버튼을 떼었을 때 함수를 호출하여 위에서 만들어놓은 파라미터 Input에게 SetInteger()로 값을 전달하는 로직을 Move()에 추가로 작성 // Update문으로 돌아가는 함수

+ GetInteger()로 파라미터에게 값을 받아올 수도 있음

 

https://docs.unity3d.com/kr/530/ScriptReference/Input.html

 

Unity - 스크립팅 API: Input

Input Manager에 설정된 각 축을 읽고 모바일 장치의 멀티터치/가속도계 데이터에 접근을 하는 경우에 이 클래스를 사용합니다. 다음의 기본 설정 축과 Input.GetAxis 함수를 이용해서 해당 축을 읽습니

docs.unity3d.com

 

https://github.com/godgjwnsgur7/ShootingGame

 

GitHub - godgjwnsgur7/ShootingGame

Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub.

github.com

강의 출처

https://www.youtube.com/watch?v=ETYzjbnLixY&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=1 

 

728x90