팀 회의 내용
- 추가구현 진행사항
구현한 내용
- 오브젝트 풀을 이용한 효과음 재생
유니티에서 배경음악과 효과음을 재생시키려면 AudioSource가 있어야 하는데 배경음악 같은 경우는 각 씬마다 정해진 배경음악 하나만 존재해도 되지만 효과음은 여러개의 음악을 재생시켜야 하는 일들이 발생한다
이를 위해 AudioSource 컴포넌트를 가진 오브젝트를 프리팹으로 만들고 SoundManager로 효과음을 재생시킬 때 마다 미리 생성된 프리팹을 가져다 사용하고 반환하여 재사용 하는 방법을 통해 생성 비용을 줄이는 방법으로 구현하였다
그리고 어제 진행했던 중간발표 피드백으로 코드 작성에 대한 팁 들을 몇가지 알게 되었다
1. 필요없는 using 문은 지우고, 정렬을 해서 일관성 있는 코드 작성
2. Debug.Log 만 사용하지 말고 LogError나 LogWarnig 등을 사용하여 Log를 구분하여 사용하기
* Log는 로직에 문제가 없지만 추가 정보가 필요하거나 문제가 살짝 있어도 덜 중요한 정보일 때 사용
Error 는 중요한 문제, 에러가 나면 띄워줄 때 사용
Warning 은 에러까지는 아니지만 주의해야 하는 내용들을 띄워줄 때 사용
3. 외부에서 불러오는 것들은 항상 없을수도 있다고 생각하고 예외처리 해주기
(다른 사람들과 코드를 작업할 때 효율이 좋고, 포트폴리오에 예외처리를 꼼꼼하게 작성했다는 어필도 가능)
4. 코딩 규칙 맞추기 Enum 문 같은 경우에 파스칼을 사용하거나 대문자만 사용하고 있어서 언급됨
5. null 조건 연산자 Unity에서는 게임 오브젝트나 Monobehaviour에 사용하게 되면 제대로 작동되지 않고 null 인 상황이 발생할 수도 있다 그래서 사용하지 않는 것을 추천
최근에 나도 예외처리를 하지 않아서 null 오류가 났던 적이 있는데 당연하게 있다고 생각하고 작성하는 습관이 있는 것 같다 앞으로는 꼭 없을수도 있다고 생각해보기 !!
기술 면접 대비 20일차
Q: MVC 모델이란 무엇인지 설명해주세요
A: 모델에서는 데이터를 관리하고, 뷰에서는 데이터를 시각화 하고, 컨트롤러에서는 사용자 입력을 처리하여 모델과 뷰를 조작하는 부분으로 나누어 설계하는 방법으로 주로 UI를 구현할 때 사용하는데 이번 프로젝트에서 UI에 들어가는 데이터들을 가공하고, 관리해야하는 로직들이 너무 많아져서 이를 분리하고자 사용하게되었고, 코드가 구조화 되어 깔끔해지고, 명확하게 분리하였습니다 하지만 모든 UI를 구현하기에는 복잡하기 때문에 과도하다고 느껴져서 간단한 UI에서는 사용하지 않았습니다
Q: Unity의 생명 주기에 대해서 설명해주세요
A: 오브젝트가 생성되고 파괴되기까지의 호출되는 함수의 순서를 생명 주기라고 하고 주요 순서로는 Awake, OnEnable, Start, Update, FixedUpdate,LateUpdate,OnDisable, OnDestroy 를 거칩니다
예전에 Awake에서 다른 오브젝트와의 참조를 설정하는데 참조할 대상의 Awake 보다 먼저 호출되서 초기화가 안되어 null 오류가 뜬적이 있었고 참조를 설정하면서 참조 대상의 초기화 메서드를 호출해주거나 start 메서드로 호출 위치를 옮기는 등의 방법을 이용해 해결했던 기억이 있어 생명주기에 대해 더 생각하면서 코드를 짜야한다고 느꼈습니다
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현6, 기술 면접 대비 22일차 (0) | 2023.11.17 |
---|---|
[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현5, 기술 면접 대비 21일차 (0) | 2023.11.15 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현3, 기술 면접 대비 19일차 (0) | 2023.11.14 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현2, 기술 면접 대비 18일차 (0) | 2023.11.10 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 3주차: 추가 기능 구현1, 기술 면접 대비 17일차 (0) | 2023.11.09 |