본문 바로가기
TIL

11.27 (TIL-Unity)

by 오랑이귀엽다 2023. 11. 27.

유니티란?

유니티는 게임 개발자들이 게임을 디자인, 개발, 배포하기 위한 강력한 도구와 기능을 제공하여 게임 개발 과정을

간소화하고 가속화하는 데 도움을 주는 인기 있는 게임 개발 엔진

 

게임 엔진

  • 게임 개발을 위한 소프트웨어 플랫폼
  • 게임 개발자들이 게임을 디자인, 개발, 배포하기 위한 기능과 도구 제공
  • 그래픽, 물리, 사운드, 애니메이션, 인공지능 등 다양한 요소 관리 및 통합
  • 게임 개발 과정을 간소화하고 가속화

유니티

  • 게임 개발 및 시뮬레이션을 위한 통합 개발 환경(IDE)
  • 2D 및 3D 게임 개발을 지원
  • 다양한 플랫폼에서 실행 가능한 게임 개발
  • 사용자 친화적인 인터페이스와 강력한 기능 제공
  • 크로스 플랫폼 개발, 실시간 미리보기, 2D/3D 그래픽 지원, 물리 시뮬레이션, 스크립팅 언어, 에셋 스토어, 커뮤니티 및 문서화 등 기능 제공

비쥬얼 스튜디오

  • 마이크로소프트에서 개발한 통합 개발 환경(IDE)
  • 코드 편집기와 디버깅 도구, 빌드 시스템 등을 포함하여 개발에 필요한 다양한 기능 제공
  • 강력한 IntelliSense 기능으로 코드 작성 시 자동 완성, 신택스 하이라이팅, 오류 체크 등을 제공
  • 통합된 디버깅 환경으로 코드 실행 중에 문제를 분석하고 수정할 수 있음

 

유니티 간단 요약

 

유니티 의 주요 기능과 사용법 설명

  • 유니티 는 게임 개발을 위한 통합 개발 환경입니다.
  • 주요 기능:
    • 프로젝트 관리: 새로운 프로젝트 생성, 프로젝트 파일 구성 및 관리
    • 씬(Scene) 관리: 게임의 각 장면과 화면을 구성하는 요소
    • 에셋(Asset) 관리: 게임에 필요한 리소스(이미지, 사운드, 모델 등)를 관리
    • 컴파일 및 빌드: 스크립트 코드를 컴파일하여 실행 가능한 게임으로 빌드
    • 디버깅: 코드 실행 중에 오류를 찾고 수정
    • 에디터 확장 기능: 유니티 에디터를 사용자의 요구에 맞게 확장할 수 있는 기능 제공

 

에셋, 씬, 게임 오브젝트의 개념과 관계 설명

 

에셋(Asset):

  • 게임에 필요한 모든 리소스(이미지, 사운드, 모델, 코드 등)를 의미
  • 프로젝트의 에셋 폴더에 저장되며, 유니티에서 사용 가능한 형식으로 가져와서 게임에 활용

씬(Scene):

  • 게임의 각 장면 또는 화면을 의미
  • 유니티에서 게임은 하나 이상의 씬으로 구성되며, 각 씬은 게임의 특정 부분을 담당
  • 예를 들어, 메뉴 씬, 게임 플레이 씬, 엔딩 씬 등으로 구성

게임 오브젝트(GameObject):

  • 씬에 배치되는 모든 요소를 의미
  • 게임 오브젝트는 에셋을 이용하여 씬에 생성되며, 게임의 동작과 상호작용을 담당
  • 예를 들어, 캐릭터, NPC, 아이템, 장애물 등이 게임 오브젝트
  • 게임 오브젝트는 계층 구조로 구성되어 부모-자식 관계를 가지며, 이를 통해 그룹화하고 조작

Unity 인터페이스

  • (D) Scene 뷰: 씬의 3D 또는 2D 뷰로 씬 구성 요소 편집
  • (C) Game 뷰: 게임이 실제로 실행되는 뷰로, 플레이어가 게임을 플레이하는 화면을 실시간으로 확인
  • (B) Hierarchy 뷰: 현재 씬의 게임 오브젝트 계층 구조 표시 및 편집
  • (F) Inspector 뷰: 선택된 게임 오브젝트의 속성 및 구성 요소 편집
  • (G) Project 뷰: 프로젝트의 에셋 표시 및 관리
  • Console 뷰: 게임 실행 중의 로그 및 메시지 표시

 

마우스 조작 - Flythrough mode

  • 마우스 왼쪽 클릭 : 게임오브젝트 선택
  • 마우스 오른쪽 클릭 : w,s,a,d,q,e 키로 씬 뷰를 1인칭 이동가능, 드래그시 씬 뷰 회전
  • 마우스 스크롤 : 줌 인 & 아웃
  • 마우스 스크롤 클릭 : 씬 뷰 이동
  • alt + 마우스 왼쪽 드래그 : 씬 뷰 화면 중심 회전
  • alt + 마우스 오른쪽 드래그 : 줌 인 & 아웃

툴바 - 게임 오브젝트 위치 지정

  • Hand Tool (손 도구, 단축키 : Q) : 씬 뷰를 이동시킴
  • Move Tool (이동 도구, 단축키 : W) : 게임오브젝트를 이동시킴
  • Rotate Tool (회전 도구, 단축키 : E) : 게임오브젝트를 회전시킴
  • Scale Tool (스케일 도구, 단축키 : R) : 게임오브젝트의 스케일을 조절함
  • Rect Tool (사각형 도구, 단축키 : T) : 게임오브젝트의 스케일을 사각형 방향으로 조절함
  • Transform Tool (좌표변형 도구, 단축키 : Y) : MoveTool, RotateTool, ScaleTool 을 동시에 사용함.

 

스크립트 작성 방법

유니티 스크립트 작성

  • 프로젝트가 생성되면 Unity Editor를 열고, 스크립트를 작성할 수 있는 코드 편집기를 선택 (예: Visual Studio)
  • 스크립트를 작성할 폴더를 생성하고, 해당 폴더에 새로운 C# 스크립트 파일을 만듬
  • 스크립트 파일을 더블 클릭하여 코드 편집기에서 스크립트 연다.
  • 스크립트 파일에는 게임의 로직, 오브젝트의 동작, 입력 처리 등을 정의하는 코드를 작성

스크립트 작성 방법

  • MonoBehaviour를 상속받은 클래스를 작성합니다. 이 클래스는 유니티의 게임 오브젝트와 연결된 스크립트로 동작
  • 필요한 변수, 함수, 이벤트 등을 정의하고 구현합니다. 게임의 동작을 위한 로직을 작성
  • 필요한 Unity 함수들을 오버라이딩하여 원하는 동작을 구현할 수 있다.. 예를 들어, Start(), Update(), FixedUpdate() 등을 활용할 수 있다.
  • 필요에 따라 다른 스크립트나 Unity의 컴포넌트와 상호작용하는 코드를 작성할 수 있다.

스크립트 라이프 사이클

  • 게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍
  • 게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행
  1. Awake: 게임 오브젝트가 생성될 때 호출되는 메서드입니다. 주로 초기화 작업이 수행
  2. Start: 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드입니다. 초기 설정 및 시작 작업을 수행
  3. Update: 매 프레임마다 호출되는 메서드로, 게임 로직의 주요 업데이트가 이루어진다.
  4. FixedUpdate: 물리 엔진 업데이트 시 호출되는 메서드입니다. 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용
  5. LateUpdate: Update 메서드 호출 이후에 호출되는 메서드입니다. 다른 오브젝트의 업데이트가 완료된 후에 작업을 수행하는 데 유용
  6. OnEnable: 게임 오브젝트가 활성화될 때 호출되는 메서드
  7. OnDisable: 게임 오브젝트가 비활성화될 때 호출되는 메서드
  8. OnDestroy: 게임 오브젝트가 파괴될 때 호출되는 메서드입니다. 자원 정리 및 해제 작업이 수행

컴포넌트 이해

유니티의 컴포넌트 방식

  • 게임 오브젝트에 부착되는 독립적인 기능 모듈
  • 각 컴포넌트는 특정한 작업을 수행하거나 기능을 제공하는 역할
  • 컴포넌트들을 게임 오브젝트에 추가하고 구성함으로써 게임의 동작과 특징을 결정

기본 컴포넌트 예시

  1. Transform: 게임 오브젝트의 위치, 회전, 크기 등을 조정하는 데 사용
  2. Rigidbody: 물리적인 효과를 게임 오브젝트에 적용할 수 있게 해줌
  3. Collider: 충돌 감지를 처리하기 위해 사용되는 컴포넌트
  4. SpriteRenderer: 2D 그래픽을 표시하는 데 사용
  5. AudioSource: 사운드를 재생하기 위해 사용되는 컴포넌트
  6. 사용자가 필요에 따라 컴포넌트를 직접 작성하고 추가할 수도 있습니다. 이를 통해 게임의 특정한 동작이나 기능을 개발자가 원하는 대로 커스터마이즈

'TIL' 카테고리의 다른 글

11.29 (TIL-Unity)  (0) 2023.11.29
11.28 (TIL-코딩문제)  (0) 2023.11.28
11.24 (TIL-코딩문제)  (1) 2023.11.24
11.23 (TIL)  (0) 2023.11.23
11.22 (TIL -코딩 문제)  (0) 2023.11.22