[Unity Tutorial Roll-a-ball 03] Camera Moving

1. 카메라의 높이와 각도 수치를 변경

Main Camera -> Inspector -> Transform -> Position Y : 10, Rotation X : 45 로 수정

2. 카메라 컨트롤러 스크립트 생성

Main Camera -> Add Component -> New Script -> CameraController 이름 수정 -> Create and Add

생성된 CameraController 스크립트를 Scripts 폴더에 드로그하여 넣는다.

3. 카메라 컨트롤러 스크립트 수정

Project -> CameraController 스크립트 선택 -> Inspector -> Open

public class CameraController : MonoBehaviour {

    // 플레이어 오브젝트
    public GameObject player;
    // 카메라와 플레이어의 거리 차이
    private Vector3 offset;

    // Use this for initialization
    void Start ()
    {
        // 카메라와 플레이어의 거리 차이를 offset으로 둔다.
        // 카메라 위치 - 플레이어 위치
        offset = transform.position - player.transform.position;
    }

    // 프레임을 렌더링 하기 전에 호출
    void Update()
    {

    }

    // 모든 아이템이 Update()에서 다 처리된 후에 호출
    void LateUpdate ()
    {
        // 카메라가 플레이어와 offset 거리를 유지하며 움직인다.
        transform.position = player.transform.position + offset;  
    }
}

 

Hierarchy -> Main Camera -> Inspector -> CameraController -> Player 버튼 -> Scene -> Player 선택

 

- Reference

[Unity Moving the Player] https://unity3d.com/kr/learn/tutorials/projects/roll-ball-tutorial/moving-camera?playlist=17141

[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

[Unity Tutorial Roll-a-ball 01] Creating a new project and Setting up the Game

1. 새 프로젝트 생성

2. 새로운 게임 씬 저장

File -> Save Scenes -> Assets 폴더에 _Scene 폴더 생성 -> MiniGame 저장

3. 게임 보드 (플레이 필드) 생성

GameObject -> 3D Object -> Plane 생성

Hierachy -> Plane을 Ground로 이름 변경

Transform -> 설정 (톱니바퀴 모양) -> Reset ( 오브젝트를 (0,0,0) 위치에 배치 )

Edit -> Frame Selected - 단축키 F  (씬 뷰에서 게임 오브젝트가 전체적으로 보이도록 시점 변환)

Gizmos -> Show Grid 체크 해제 (백그라운드의 눈금 표시 제거)

Transform -> Scale -> X : 2, Z : 2 로 수정 (오브젝트 크기 늘리기)

4. 플레이어 오브젝트 생성

Hierachy -> Create -> Sphere 생성

Sphere를 Player로 이름 변경 -> Transform Selection -> 설정 (톱니바퀴) -> Reset

Transform Selection -> Position -> Y : 0.5 로 수정 -> Edit -> Frame Selected (단축키 F)

5. 플레이 필드의 색상 변경하기

Project -> Create -> Folder -> Materials 폴더 생성

Materials 폴더 선택 -> Project -> Create -> Material 생성 -> Material을 Background로 이름 변경

Background -> Albido -> Color -> RGB (0, 32, 64) 로 수정

우하측의 Background 탭을 눌러서 Material 미리보기 활성화

Background material을 씬 뷰의 플레이 필드로 마우스 드로우 업

6. 플레이어가 선명하게 보이도록 조명 수정

Hireachy -> Directional Light -> Transform -> Rotation -> Y : 60 으로 수정

 

 

- Reference

[Roll-a-ball tutorial] https://unity3d.com/kr/learn/tutorials/projects/roll-ball-tutorial

[Setting up the Game] https://unity3d.com/kr/learn/tutorials/projects/roll-ball-tutorial/setting-game?playlist=17141

+ Recent posts