Unity Chapter 1. 유니티 준비하기

Date:     Updated:

카테고리:

태그:

인프런에 있는 이제민님의 레트로의 유니티 C# 게임 프로그래밍 에센스 강의를 듣고 정리한 필기입니다. 😀
🌜 [레트로의 유니티 C# 게임 프로그래밍 에센스] 강의 들으러 가기!


Chapter 1. 유니티 준비하기

새 프로젝트 생성

템플릿은 나중에도 바꿀 수 있다. 2D로 나중에 변경도 가능하니 일단 3D로 해놓고 시작해보자!


유니티 인터페이스 살펴보기

레이아웃

image

  • 이 수업에선 레이아웃을 위와 같은 모양으로 쓸 것이다!
    1. 오른쪽 상단에 맨 오른쪽에 있는 것을 Default에서 2 by 3로 바꿔주었다.
    2. Project창은 Hierarchy아래로 옮겼다.
    3. 메뉴 - Window - General - Console 창을 Inspect창 아래에 붙여주었다.

새로운 오브젝트 추가하기

Hierarchy창에서 create > 3D object > cube 하여 큐브 오브젝트를 추가해준다.

인터페이스 각 창들 설명

  • 🚗 Scene 창
    • 유니티는 하나의 게임 월드를 scene이라는 단위로 관리한다.
      • scene은 하나의 게임 월드, 하나의 맵, 하나의 게임 레벨에 대응함.
    • 현재 활성화 된 scene에 존재하는 Object들을 시각적으로 활성화하여 볼 수 있는 창이다.
    • 영화 촬영장이라고 생각하면 된다.
  • 🚗 Hierarchy 창
    • 현재 Scene에 존재하는 모든 Object들을 리스트로 보여준다. 현재 영화 촬영장에 배치되어 있는 영화 소품들.
    • 기본 오브젝트
      • Main Camera
        • 현재 플레이어가 보게 될 화면.
        • 오브젝트이므로 씬 창에서 위치를 바꿔 플레이어가 보게 될 시점을 변경할 수 있다.
        • position, rotation, scale을 변경하여 세밀하게 플레이어의 시점을 변경할 수 있음.
        • 진짜 그냥 촬영하는 카메라라고 생각하면 됨.
      • Directional Light
        • Scene에 빛을 만들어준다.
    • 👁 왼쪽에 눈알 모양으로 누르면 해당 Object를 Scene에서 안 보이게끔 할 수 있다.
  • 🚗 Inspector 창
    • 현재 선택한 게임 오브젝트 혹은 asset에 대한 정보를 표시해준다.
      • 해당 게임 오브젝트에 붙어있는 컴포넌트들이 표시됨
        • Object : 게임 세상 속에 존재하는 사물
        • Component : 오브젝트에 붙어서 해당 오브젝트가 어떤 동작을 할 수 있게끔 하는 부품. 기능이라고 생각하면 된다.
  • 🚗 Game 창
    • 플레이어가 보게 될 화면. 프리뷰.
    • Main Camera 오브젝트가 비추고 있는 화면
    • 비율과 해상도를 설정할 수 있다.
      • 다만 플레이어가 볼 해상도에는 영향을 주지 않는다.
      • 직접 사용자 지정 비율을 사용할 수 있다.
    • scale 값은 화면 배율인데 게임 화면을 넓게 보기 위해 최소로 놓는 것이 좋다.
    • Scene이 영화 촬영장이라면 Game은 실제 영화 장면이다. 카메라를 통한 화면. 실제 게임 화면이 된다.
  • 🚗 Project 창
    • 현재 프로젝트에서 사용한 모든 패키지와 에셋을 표시한다. 게임에서 사용될, 사용될 수도 있는 모든 소품들을 보관하는 곳.
      • Assets : 프로젝트에 사용된 모든 파일과 폴더. ex) c#스크립트, 이미지, 애니메이션 등등
        • 우리가 현재 보고 있는 Hierarchy 창의 Scene도 Assets에 로드 되어 있다.
      • Packages : 외부 모듈. 우리가 직접 편집할 수는 없음.
    • 우리가 사용할 파일을 여기에 드래그 앤 드롭해서 Import 할수 있다.
      • 메뉴 - Assets - Import New Asset… 하는 방법도 있음
    • 하단에 아이콘 크기 조절 사이드바가 있다.
      • 슬라이드 바를 완전히 왼쪽으로 밀면 리스트 형태로 변경된다.
  • 🚗 Console 창
    • 개발자들에게 유용할 정보를 텍스트로 표시해주는 창
    • 에러, 정보, 권고사항 등등 개발자에게 정보를 준다.
    • 콘솔 출력 메세지 또한 이곳에 뜬다.


플레이 버튼

image

  • 단축키 Ctrl + P
  • 중앙 상단에 위치한다.
  • ▶️ : 플레이
    • 현재 scene이 활성화 되며 오브젝트들이 붙어있는 컴포넌트들에 따라 동작한다.
    • 플레이 동작 중에 변경한 사항들은 반영되지 않음을 주의하기
      • 플레이를 풀면 플레이 중에 변경한 사항들은 다 사라지게 된다.
      • 중요한 변경 사항은 플레이 모드를 해제한 후 변경하자.
    • 위에서 추가한 큐브 오브젝트를 플레이하면 중력에 의해 떨어지게 동작시켜 보자
      1. Hierarchy 창에서 큐브 오브젝트를 선택한 상태에서 Inspector창
      2. Add Component - Phisics - RigidBody 컴포넌트 선택
        • RigidBody : 오브젝트의 물리 기능을 추가 할 수 있다. 이 컴포넌트를 추가하기만 해도 이제 중력의 영향을 받게 됨.
        • 플레이 해보면 중력에 의해 큐브 오브젝트가 아래로 떨어지는 것을 확인할 수 있다.
  • ⏸ : 퍼즈
    • 플레이 중에 누르면 오브젝트가 동작하는 것을 잠시 멈출 수 있다.
  • ⏯ : 스텝
    • 한번 누를때마다 한 프레임씩 게임이 진행된다.


기즈모

image

기즈모란 scene 편집을 쉽게 하기 위해서 scene창에 표시되는 그래픽 도구들 오브젝트 주변과 테두리에 보이는 회색 격자나 주황색 실선. 그리고 x, y, 축을 나타내는 평행이동선 등등 이런 것들이 바로 기즈모자.

  • 오직 개발자의 편의를 위해 scene창에서만 보인다.
  • 빨간 체크 부분에서 우리 눈에 보이는 기즈모에 관련한 설정을 변경할 수 있다.

image

씬 기즈모란 씬 창의 오른쪽 상단에 위치하는데 씬 카메라의 방향과 시점을 즉시 파악하고 변경할 수 있도록 도와준다.

  • 씬 기즈모의 x,y,z축을 뜻하는 각 원뿔들을 클릭하면 씬 카메라가 즉시 그 방향을 바라보게끔 변경할 수 있다.
  • 씬 기즈모의 가운데 큐브 모양을 클릭할 때마다 원근감 있는 시점(3D), 원근감 없는 시점(2D)</u>으로 변경할 수 있다.


트랜스폼 툴바

image

  1. 핸드 툴 (단축키 Q) : 씬 탐색
  2. 평행 이동 툴 (단축키 W) : 오브젝트 변형
  3. 회전 툴 (단축키 E) : 오브젝트 변형
  4. 스케일 툴 (단축키 R) : 오브젝트 변형
  5. 렉트 툴 (단축키 T) : 오브젝트 변형
  6. 트랜스폼 툴 (단축키 Y) : 오브젝트 변형

씬 탐색

Scene창을 돌아다니고 게임 오브젝트들을 편집할 때 사용. Hierarchy 창에서 오브젝트를 더블 클릭하면 Scene을 비추는 가상의 Scene Camera가 해당 오브젝트가 중심에 오게끔 비추게 된다. 이 상태에서 Scene창의 Scene Camera 조작해보자.

  • Main Camera
    • 플레이어가 보게 될 화면
    • 오브젝트이므로 Hierarchy창과 Inspector창에서 관리할 수 있다.
  • Scene Camera
    • Scene 창
    • 개발하면서 게임 월드를 편하게 보며 오브젝트들을 편집할 때 사용할 개발자용 시점
    • 실제 게임 플레이 할때의 화면(Main Camera)과는 상관이 없다.
    • 트랜스폼 툴바, 마우스 우클, Alt 등등 이런 것들로 조작 가능하다.
    1. 🖐 핸드 툴 : Scene Camera 를 평행하게 움직일 수 있다.
      • 단축키 Q
      • 마우스 휠 버튼을 꾹 눌러 잠시 동안 실행할 수 있다.
      • 휠 버튼을 떼는 순간 원래 사용하던 툴로 돌아감
  • 마우스 스크롤
    • 줌인 줌아웃
  • 마우스 우클릭
    • scene창을 마우스 우클릭으로 꾹 눌러준 상태에서 WASD, 마우스 회전을 하면 FPS게임처럼 scene 화면을 돌아다닐 수 있게 된다.
  • Alt키 누른 채 마우스 좌클 or 마우스 우클
    • scene창의 중심을 기준으로 공전하면서 움직일 수 있게 된다.
    • 현재 오브젝트가 scene창의 중심이 오브젝트에 있다면 오브젝트를 중심으로 공전하며 볼 수 있다.

오브젝트 변형

  1. 평행 이동 툴 - 선택한 오브젝트를 원하는 방향으로 이동시킨다.
    • 기즈모로 나타나는 오브젝트 내부에 보이는 축을 누르고 이동시킬 수 있다.
      • 💖 x축, 💚 y축, 💙 z 축
    • 축 말고 축 가운데에 있는 을 누르면 해당 면과 평행하게 이동할 수 있다.
      • 단축키 W
  2. 회전 툴 - 선택하면 회전 축 선이 나오는데 이를 조작하여 회전시킬 수 있다. - 가운데 검은 선을 조작하면 축의 방향과 상관없이 자유롭게 회전시킬 수 있다. - 단축키 E
  3. 스케일 툴 - 선택하면 나오는 큐브를 누르고 늘려 오브젝트의 크기를 조작할 수 있다. - 가운데 큐브는 모든 축을 기준으로 동시에 크기 변경함 - 단축키 R
  4. 렉트 툴 - 직사각형으로서 편집한다.
    • 즉 가로와 세로 방향의 크기만 변하고 z값은 변하지 않는다.
    • 2D와 UI에서 많이 사용된다.
      • 단축키 T
  5. 트랜스폼 툴 - 평행이동툴, 회전툴, 스케일툴을 합친 것 - 단축키 Y


씬 에셋 scene asset

유니티 scene은 asset으로서 저장된다. 즉 파일로 저장이 됨. Ctrl + S를 눌러 씬을 저장하되 /assets 폴더 안에 저장한다. 다른 씬을 열고싶다면 기존 Scene의 저장 후 Project창의 assets 폴더에서 해당 씬을 더블 클릭하기만 하면 된다. 새 scene을 열려면 Ctrl + n


피벗-센터 + 로컬-글로벌 전환

  • 🚕 Pivot / Center
    1. Pivot
      • 실제 오브젝트의 위치를 기준으로 오브젝트 위에 씬 도구들을 표시한다.
      • 예를 들어 사람 오브젝트라면 사람의 발 밑에 씬 도구들이 표시된다.
    2. Center
      • 실제 오브젝틔 위치와는 상관 없이 오브젝트 형태의 중앙점 위에 씬 도구들을 표시한다.
      • 예를 들어 사람 오브젝트라면 사람의 배, 즉 중앙 부분에 씬 도구들이 표시된다.
  • 🚕 Local / Center
    1. Local
      • 게임 오브젝트의 좌표계를 기준으로 씬 도구들을 표시한다.
      • 예를 들어 Local로 두고 오브젝트를 회전한다면 자전할 것
    2. Global
      • 글로벌 좌표계를 기준으로 씬 도구들을 표시한다.
      • 예를 들어 Global로 두고 오브젝트를 회전한다면 게임 월드의 중앙 좌표를 기준으로 공전할 것
      • 게임 세상을 기준으로 배치할 때 도움이 된다.
  • Tip : 평소에는 Pivot / Local로 두되 필요할 때만 center, global로 바꾸는 것을 추천한다.


프로젝트 폴더 구조 + 프로젝트 다시 열기

  • 유니티 프로젝트의 필수 폴더는 Assets, Packages, ProjectSettings 이렇게 3가지이다. 용량을 줄이기 위해 프로젝트를 어디 올리거나 전달할 때 이 3가지만 전하도록 하자.
  • 기존 유니티 프로젝트를 다시 열려면 유니티 허브를 열고 프로젝트 탭에서 최근에 열었던 프로젝트를 클릭해 열 수 있다. 혹은 Open 버튼을 눌러 원하는 프로젝트를 열자


유니티 코드 에디터 변경하는 방법

메뉴 - Edit - Preferences - External Tools 에서 사용할 에디터 선택하기. 드롭 다운을 클릭하여 선택하여도 되고 없다면 Browse.. 를 눌러 사용할 에디터가 설치된 폴더 경로를 선택해주면 된다.


Tip

  • Ctrl키를 누른 상태에서 오브젝트를 옮기면 1단위로 평행이동 시킬 수 있다.
  • Ctrl + D : 복사 붙여넣기 한번에.
  • shift : shift 한 후 파일을 두개 선택하면 그 파일들을 포함하여 파일 사이에 있는 파일들까지도 전부 선택된다.


정리

이 챕터에서 새로 알게된 컴포넌트들 정리

  • RigidBody
    • 오브젝트에 물리 기능을 추가해준다.
    • 오브젝트가 중력의 영향을 받게 됨


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Unity Lesson 1 카테고리 내 다른 글 보러가기

댓글 남기기