[Unity Tutorial Roll-a-ball 02] Moving the Player
1. 플레이어 오브젝트에 물리 엔진 추가
Inspector -> Add Component -> Physisc -> Rigidbody
2. 플레이어 이동 컨트롤 스크립트 생성
Project -> Create -> Folder -> 폴더 Scripts로 이름 변경
Player 오브젝트 선택 -> Inspector -> Add Component -> New Script -> Name : PlayerController -> Create and Add
Project에 생성된 PlayerController 스크립터를 Scripts 폴더에 드래그하여 넣는다.
3. 플레이어 이동 컨트롤 스크립트 PlayerController 소스 코드 수정
Project -> PlayerController 선택 -> Inspector -> Open
public class PlayerController : MonoBehaviour {
// 에디터 안 Inspector에서 편집 가능한 속도 조정 변수 생성 public float speed; // Rigidbody 형태의 변수 생성 private Rigidbody rb;
// 스크립트가 활성화된 첫 프레임에 호출 void Start() { // 현재 오브젝트의 Rigidbody를 참조 rb = GetComponent<Rigidbody>(); }
// 프레임을 렌더링 하기 전에 호출 void Update() {
}
// 물리효과 계산을 수행하기 전에 호출 void FixedUpdate() { // 키보드의 키로 컨트롤하는 수평 축의 입력 (left, right) float moveHorizontal = Input.GetAxis("Horizontal"); // 키보드의 키로 컨트롤하는 수직 축의 입력 (up, down) float moveVertical = Input.GetAxis("Vertical");
// 플레이어의 이동량을 선언 (x축, y축, z축) Vector3 movemnet = new Vector3(moveHorizontal, 0, moveVertical); // 플레이어의 Rigidbody에서 movement 값만큼 힘을 가해서 이동시킴 rb.AddForce(movemnet * speed); } } |
수정한 소스 코드를 저장 -> Player 선택 -> Inspector -> PlayerController (Script) -> Speed 값을 입력
4. 프로젝트 빌드 및 실행
상단의 중앙에 위치한 플레이 버튼을 클릭하여 프로젝트를 실행한다.
아래의 게임 화면에서 키보드 조작으로 공을 움직일 수 있다.
플레이어 이동 |
키보드 입력 |
키보드 방향키 |
앞 |
W |
상 |
뒤 |
S |
하 |
왼쪽 |
A |
좌 |
오른쪽 |
D |
우 |
- Reference
[Moving the Player] https://unity3d.com/kr/learn/tutorials/projects/roll-ball-tutorial/moving-player?playlist=17141
[Unity Input ] https://docs.unity3d.com/ScriptReference/Input.html
[Unity Input GetAxis ] https://docs.unity3d.com/ScriptReference/Input.GetAxis.html
[Unity Rigidbody ] https://docs.unity3d.com/ScriptReference/Rigidbody.html
[Unity Rigidbody AddForce ] https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html