[Unity Tutorial Slime World 02] Player Moving And Rotating


1. Player Controller 스크립트 생성

Player -> Add Component -> New Script -> PlayerController 생성


2. Player Controller 스크립트 수정


3. 플레이어 이동 속도와 회전 속도 지정

Player -> Player Controller (Script) -> Run Speed : 2, Rotation Speed : 100 으로 변경

[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

+ Recent posts