본문 바로가기
관/핫한 닷지 프로젝트 게임개발

닷지 프로젝트 오브젝트 기초 04(플레이어 움직이기 스크립트).

by 4차원 박스 2020. 7. 18.

이번엔 플레이어 오브젝트가 움직일 수 있게 해주는 스크립트를 만들어본다.

 

다음은 플레이어의 스크립트를 만들어서 실행한다.
에셋에 스크립트 전용 폴더 하나를 만들고 
스크립트를 생성하고 이름을 PlayerController로 해준다.


스크립트에는 게임오브젝트의 이동을 구현하기위한 물리적인 힘을 가하는 방식을 사용한다
따라서 Player게임 오브젝트에 추가된 리지드바디 컴포넌트를 변수로 가져와 사용한다.

리지드바디 컴포넌트를 할당할 변수, 이동속력을 지정할 변수를 만들어준다

전역변수로
public Rigidbody playerRigidbody;
public float speed = 8f;
이렇게 해준다

playerRigidbody이것이 리지드바디의 변수이름이다.
여기서 착각하면 안되는것이. 오브젝트의 컴포넌트 안에 리지드바디가 없으면
이건 쓸모없는것이다. 컴포넌트로 리지드 바디를 만들고 나서 그 이름을 스크립트에
만들어준것 이다. 이 변수에 나중에 컴포넌트를 할당할 예정이다.


(개인적으로 getcomponent함수를 알고있지만 이건 조금 뒤에 등장한다). 


이제 입력을 감지하는 기능르 만들기위해
Update()메서드와 Input()클래스의 입력감지 메서드를 사용한다.

Update()메서드 = 실시간으로 변하는 정보를 주기적으로 체크, 대부분의 게임은 주기적으로 갱신처리를 실행하며
이런 갱신처리는 화면이 새로그려지는 주기(프레임)에 맞추어 실행된다.
1초동안 새로그려지는 횟수= FPS(frame per second) 이고 대부분 60이 기본 평균값이다.
따라서 pc게임 개발에는 60FPS를 평균으로 생각하되 가변적임을 명심한다.


Update는 유니티 이벤트 메서드이고 한프레임에 한번씩 매프레임마다 반복실행된다.


Input()클래스 = 사용자 입력을 감지하는 메서드를 모아둔 집합임.
실행 시점에 어떤키를 눌렸는지 알려준다

이를 업데이트에서 사용하면 입력감지 메서드가 짧은 간격으로 반복실행되기에
사용자는 입력이 즉시 감지된다고 느낀다.

이제 이를 이용하여 playerRigidbody에 힘을 주는 코드를 만든다.

Input.GetKey()메서드는 키보드의 식별자를 KeyCode 타입으로 입력받는다.
KeyCode 타입은 내부적으로 숫자로 동작함 예로 위쪽화살표는 273이다.

Input.GetKey(KeyCode key);같은 방식으로 사용한다.

 

Input.GetKeyDown() 메서드 = 누르는 순간 참값 반환 그외는 거짓 반환.
Input.GetKeyUp() 메서드 = 누르다가 손을 뗀 순간 참값 반환 그외는 거짓.
즉 이 두개는 누르는 동안에는 거짓이다!! 한마디로 잠깐 터치용이다.

 

참고로 이 코드는 좀더 간편한 코드로 나중에 바꿀 예정이므로 

이 코드가 편한 사람은 이 코드를 사용해도 무방하고 

다른코드가 욕심나면 코드만 정리된 아래 포스팅을 보고 참고해도 좋다!

https://hotstudy.tistory.com/34

 

닷지 프로젝트 전체 코드

유니티상에서 작동하는 간단한 닷지 게임 코드 전체 공개를 하고 이 스크립트(코드)를 어떻게 적용시키는지 그 방법을 차근히 다음 포스팅에서 공개하도록 하겠다(파이게임 포스팅때의 자료는

hotstudy.tistory.com

도움이 되었다면 칭찬 한마디만...

댓글