유니티란?
유니티는 게임 개발자들이 게임을 디자인, 개발, 배포하기 위한 강력한 도구와 기능을 제공하여 게임 개발 과정을
간소화하고 가속화하는 데 도움을 주는 인기 있는 게임 개발 엔진
게임 엔진
- 게임 개발을 위한 소프트웨어 플랫폼
- 게임 개발자들이 게임을 디자인, 개발, 배포하기 위한 기능과 도구 제공
- 그래픽, 물리, 사운드, 애니메이션, 인공지능 등 다양한 요소 관리 및 통합
- 게임 개발 과정을 간소화하고 가속화
유니티
- 게임 개발 및 시뮬레이션을 위한 통합 개발 환경(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의 컴포넌트와 상호작용하는 코드를 작성할 수 있다.
스크립트 라이프 사이클
- 게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍
- 게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행
- Awake: 게임 오브젝트가 생성될 때 호출되는 메서드입니다. 주로 초기화 작업이 수행
- Start: 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드입니다. 초기 설정 및 시작 작업을 수행
- Update: 매 프레임마다 호출되는 메서드로, 게임 로직의 주요 업데이트가 이루어진다.
- FixedUpdate: 물리 엔진 업데이트 시 호출되는 메서드입니다. 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용
- LateUpdate: Update 메서드 호출 이후에 호출되는 메서드입니다. 다른 오브젝트의 업데이트가 완료된 후에 작업을 수행하는 데 유용
- OnEnable: 게임 오브젝트가 활성화될 때 호출되는 메서드
- OnDisable: 게임 오브젝트가 비활성화될 때 호출되는 메서드
- OnDestroy: 게임 오브젝트가 파괴될 때 호출되는 메서드입니다. 자원 정리 및 해제 작업이 수행
컴포넌트 이해
유니티의 컴포넌트 방식
- 게임 오브젝트에 부착되는 독립적인 기능 모듈
- 각 컴포넌트는 특정한 작업을 수행하거나 기능을 제공하는 역할
- 컴포넌트들을 게임 오브젝트에 추가하고 구성함으로써 게임의 동작과 특징을 결정
기본 컴포넌트 예시
- Transform: 게임 오브젝트의 위치, 회전, 크기 등을 조정하는 데 사용
- Rigidbody: 물리적인 효과를 게임 오브젝트에 적용할 수 있게 해줌
- Collider: 충돌 감지를 처리하기 위해 사용되는 컴포넌트
- SpriteRenderer: 2D 그래픽을 표시하는 데 사용
- AudioSource: 사운드를 재생하기 위해 사용되는 컴포넌트
- 사용자가 필요에 따라 컴포넌트를 직접 작성하고 추가할 수도 있습니다. 이를 통해 게임의 특정한 동작이나 기능을 개발자가 원하는 대로 커스터마이즈
'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 |