[retr0 Unity]DodgeGame_01: 바닥/벽/플레이어 게임 오브젝트 생성, Material 설정, 카메라 설정, 플레이어 설정

k_dah·2021년 7월 14일
0

unity

목록 보기
6/15

"레트로의 유니티 게임 프로그래밍 에센스" 책을 참고하여 작성하였다.


플레이어(Capsule), 바닥(Plane) , 벽(Cube) 게임 오브젝트 생성

  • 플레이어 게임오브젝트 : Hierarchy 창에서 Capsule 클릭
  • 바닥 게임오브젝트 : Hierarchy 창에서 Plane 클릭
  • 벽 게임오브젝트 : Hierarchy 창에서 Cube 클릭 , 생성 후 Ctrl+D 세번 해주기 (벽은 4개 필요하니까)

    Cube들의 Transform 컴포넌트의 Scale과 Position을 조정해서 Plane의 사방 벽이 되도록 한다.

+게임 오브젝트 생성할 때 위치를 원점(Transform의 Position부분)으로 하고 싶다면, Inspector 창에서 톱니바퀴->Reset 클릭

+Plane의 크기는 가로세로 10유닛, 이때 1유닛은 Cube 한 변의 길이라는 것 참고!

+빈 게임 오브젝트(Level) 만들고 바닥 & 벽 게임 오브젝트들 모두 Drag&Drop해서 Hierarchy창 깔끔하게 정리

Material 설정

  • Material = 셰이더[질감과 빛에 의한 반사/굴절 등의 효과] + 텍스쳐[표면에 입히는 이미지 파일]
    -> 게임 오브젝트의 컬러를 결정한다.
  • Material 만들기 : Project 창에서 Assets 폴더 아래에 'Materials' 폴더를 생성하고 그 폴더로 이동한 뒤
    -> "마우스 우클릭->Create->Material"
    나는 Albedo로 물체표면색을 바꿔주고, Smoothness 만 조금 조정해 줬다.
    'Plane Color', 'Player Color' Material 을 만들고 각 Plane, Player 게임 오브젝트에 Drag&Drop 해주기

카메라 설정

  • Main Camera 게임오브젝트의 Position과 Rotation 수정
    게임화면에 Level 전체가 한 눈에 보이도록 카메라의 Position과 Rotation을 조정한다.
  • Camera 배경 설정
    Camera 컴포넌트는 기본값으로 배경을 가상의 하늘인 Skybox로 채우도록 설정되어 있다.

    Main Camera의 Camera 컴포넌트에서 Clear Flags 의 값을 Solid Color 로 변경하고 아래의 Background 의 컬러 필드를 클릭해서 원하는 색으로 바꿔준다.

플레이어 설정 : 사용자 입력에 따른 Player의 위치 변화 구현

  • Rigidbody 컴포넌트를 추가 : Player 게임오브젝트를 움직이는 데는 물리적인 힘과 속력이 필요하기 때문

+이때 Player 게임오브젝트는 Capsule 이기 때문에 Rigidbody 컴포넌트를 그대로 사용하면 플레이어가 오뚝이처럼 이리저리 넘어질 수가 있다.

+게임오브젝트가 넘어지는 것을 막기 위해 Rigidbody 컴포넌트의 Constraints 옵션을 조정
+게임오브젝트의 높이는 고정되고, 오직 Y축으로만 회전이 가능

  • PlayerController 스크립트 생성
    0. 유니티 이벤트 메서드 Update()
    -> 한 프레임에 한 번, 매 프레임마다 반복 실행된다. 따라서 이를 통해 실시간으로 사용자의 입력을 감지한다.
    1. 사용자의 입력을 감지하는 메서드를 모아둔 Input 클래스
    -> Input.GetKey() 메서드는 키보드의 식별자를 KeyCode 타입으로 입력받는다.
    2. Rigidbody.AddForce()
if (Input.GetKey(KeyCode.UpArrow))
        {
            // 위쪽 방향키 입력이 감지된 경우 z 방향 힘 주기
            playerRigidbody.AddForce(0f, 0f, speed);
        }

값을 준 해당 축의 방향으로 speed 만큼의 힘을 받아 Player 가 움직인다.

profile
개똥이

0개의 댓글

관련 채용 정보