TIL

[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현5, 기술 면접 대비 21일차

Hwone 2023. 11. 15. 20:57

팀 회의 내용

- 진행 상황 공유 

- 배포 전 까지 일정 정하기 

오늘 한 일 

- 사운드 소스 찾기 

- 사운드 적용 

 

저번에 라이센스를 공부했던 내용을 토대로 저작권 없는 CC0 위주로 Sound 에셋을 찾았고 이전 프로젝트들 보다 규모가 있다보니까 찾아야 하는 양이 많고, 저작권도 신경써야해서 마음에 드는 Sound를 찾기 어려웠다

 

이 작업을 하면서 내가 작성한 코드 뿐만 아니라 다른 팀원분들이 작성한 코드를 자연스럽게 보게 되어 신선하게 다가왔다 

열심히 보면서 이해하고 배우는 중이다 

 

MonoBehaviour 클래스에서 주요 메서드에 대해 공부하다가 유니티 클래스들을 한번 정리하고 가면 좋을 것 같다고 생각했다 

 

1. GameObject : 유니티 씬에서 오브젝트를 나타낸다 

2. MonoBehaviour : 모든 Unity 스크립트의 기본 클래스로 GameObject에서 파생된다 

3. Object : 에디터에서 Unity가 참조할 수 있는 모든 객체의 기본 클래스이다 

4. Transform : GameObject의 위치, 회전, 크기를 조작하고, 부모 및 자식 GameObject 간의 계층 구조를 관리 

5. Vectors : 2D, 3D 및 4D 포인트, 선 및 방향을 처리하는 클래스 

6. Quaternion : 절대, 상대 회전을 나타내는 것으로 회전을 생성하고 조작하는 메서드를 제공

7. ScriptableObject :  대량의 데이터를 저장하는 데 사용되는 컨테이너

8. Time (프레임 속도 관리) : 시간을 측정하고 제어하며, 프로젝트의 프레임 속도를 관리

9. Mathf : 게임 및 앱 개발에 일반적으로 필요한 수학 함수의 모음으로 삼각, 로그 및 기타 함수를 포함합니다 

10. Random : 다양한 유형의 무작위 값 생성을 제공

11. Debug : 런타임 중에 에디터에서 정보를 시각화하여 프로젝트 동작에 대해 로그를 찍을 때 유용하다

12. Gizmos and Handles : Scene view 및 Game view 에서 선 및 모양을 그리고 상호작용 가능한 핸들 및 컨트롤을 제공한다 

 

기술 면접 대비 21일차 

Q: MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.

 

A: Start, Update, FixedUpdate, OnCollisionEnter, OnTriggerEnter, OnDestroy 가 있습니다

Start는 게임 오브젝트가 시작할 때 호출되고, Update는 프레임마다 호출되며, FixedUpdate는 물리 타임스텝마다 호출됩니다

OnCollisionEnter, OnTriggerEnter 는 물리 충돌 또는 트리거가 발생할 때 호출되고

OnDestroy는 게임 오브젝트가 파괴될 때 호출됩니다

 

Q: Unity 오브젝트가 다양하게 씬에 올라와 있다면 동시에 시작되고 무엇이 먼저 초기화 되는지 알 수 없을 수 있는데, 프로젝트에서 코드를 만들 때 이에 대해 고민하고 해결해본 경험이 있다면 설명해주세요.

 

A: Awake에서 다른 오브젝트와의 참조를 설정하는데 참조할 대상의 Awake 보다 먼저 호출되서 그 대상이 초기화를 진행하지 못해 null 오류가 뜬적이 있었습니다 그래서 참조 대상의 초기화 메서드를 호출해주거나 start 메서드로 호출 위치를 옮기는 등의 방법을 이용해 해결했던 경험이 있습니다