2024. 8. 21. 21:06ㆍ나의 개발자 기록/본 캠프 개발 일지
2024년 8월 21일 수요일
What I did today : WebGL 프로젝트 빌드하기 및 대응하기
다들 월요일날 다 끝났다고 생각하고, 어제 쉴 분들은 쉬시고, 개인 공부하실 분들은 공부하는 시간을 가졌었습니다. 그러다가 담당 튜터님이 찾아오셔서 남은 시간에 WebGL 빌드를 한 번 경험해 보라고 하셔서 한 분은 버그를 고치고, 다른 한 분이랑 저는 각자 따로 WebGL에 대해서 찾아보면서 빌드를 해보았습니다.
WebGL 대해서 잘 모르니까 일단 빌드를 해보려고 Unity에서 WebGL 빌드를 어떻게 하는지 찾아보았고, 해당 모듈이 유니티 프로젝트에 있어야 빌드를 할 수 있었습니다. 지금은 다운로드를 한 상태기 때문에 있지만, 없다면 오른쪽 톱니바퀴 모양에서 WebGL 모듈을 다운로드할 수 있었습니다.
그다음에는 패키지 매니저에서 WebGL Publisher를 다운 받고 빌드를 해보는데, DOTWeen과 관련된 오류가 발생했습니다.
Assets\02.Scripts\Scenes\DefenseScene\UI\Scene\UIDefenseScene.cs(82,15): error CS1929:
'TweenerCore<Vector2, Vector2, VectorOptions>' does not contain a definition for 'GetAwaiter'
and the best extension method overload 'GSpreadExtensions.GetAwaiter(UnityWebRequestAsyncOperation)'
requires a receiver of type 'UnityWebRequestAsyncOperation'
해당 오류는 "TweenerCore<Vector2, Vector2, VectorOptions>" 타입이 비동기 메서드가 아님에도 불구하고 'await'으로 비동기 구현이 되어 있어서 나온 오류이고, 해당 메서드를 비동기 처리를 해야 하는 상황이라면 "AsyncWaitForCompletion()" 함수를 사용하는 것으로 해결할 수 있었습니다.
그렇게 WebGL 빌드를 해보고 유니티에 올려서 테스트를 해본 결과... 로딩창에서 진행이 안되는 문제가 있었습니다. 이 문제는 뭐가 문제인지 찾아보니까 정확한 원인은 모르겠는데, Task 같은 함수들은 WebGL에서 지원을 안 한다는 것도 있고, 저희가 유니티에서 사용했던 게임 종료 함수도 WebGL에서 지원하지 않는 것 등등 여러 가지 이유로 진행이 안 되었습니다.
그러다가 WebGL을 만지고 계셨던 다른 팀원 한 분이 itch.io에 WebGL로 등록을 하셨다고 말해주셨습니다. 저 같은 경우에는 로딩에서 진행이 안됐었는데, 팀원분이 올리신 WebGL은 진행이 잘 되더군요... 그래서 저는 제가 했던 거에 손을 떼고, 팀원분이 어떻게 하셨는지 설명을 들었습니다. 들어보니까 DOTWeen은 제가 했던 방식대로 하셨고, 유니티에서 잘 되던 게 WebGL에서 안 되는 것들 일부를 수정하셔서 진행이 잘 되었던 것이었습니다.
그렇게 WebGL 올라온거를 테스트를 해본 결과... 해상도 문제와 저장, 불러오기 관련에서 약간 문제가 있었습니다. 해상도 문제의 경우에는 팀원분이 열심히 체크하고 수정하셔서 해결하셨는데, 저장 불러오기는 제가 UGS 기능을 구현할 때 Task로 구현을 해놨었는데도 WebGL에서 되는 부분이 있고, 안 되는 부분이 있어서 뭐가 원인인지 몰랐습니다. 그러다가 다음날 WebGL을 해주셨던 팀원분이 UniTask로 바꾸었더니 잘 된다고 하셨고, 다른 팀원 한 분은 몬스터 정보 보기와 보상 세분화 등등 새로운 기능을 추가해 주셨습니다.
아마 이제 마지막으로 손 좀 보면서 수정할 거 수정하고, 추가할 거 추가해서 얼추 마무리를 했고, 남은 시간에는 저번에 못했던 면접 테스트 준비를 시작했습니다. 저번에 했던거의 연장선이라 생각하고 면접 테스트를 봤는데, CS 지식에 대해서는 2개는 답을 했고, 1개는 답을 못했습니다. 그리고 기타 질문 중에서 Git Repository 관련해서 어떤 문제가 있었고, 어떻게 해결했는지에 대해서는 저번에 있었던 충돌 관련해서 대답을 했었고, 튜터님께서 궁금한게 있으면 물어보라고 하셔서 저는 TA 직종을 하려면 어떻게 해야하는지 물어보았습니다. 튜터님께서는 경험을 많이 쌓고, 별도로 셰이더 공부를 해서 TA로 전직하는 게 좋다고 하셨습니다.
그렇게 면접테스트가 끝나고, 저희는 유저테스트에 참가하셨던 분들 중 답변을 잘해주신 분들께 배달의 민족 1만원권을 각 4분께 드렸고, 남은 시간에는 튜터님과 마지막으로 체크하면서 약간의 수정 작업을 진행해서 최종적으로 마무리하게 됐습니다.
면접 질문 대비 : LINQ란 무엇인가요?
int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
// 사용 예시
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // 2, 4
}
LINQ(Language Integrated Query)는 데이터 소스에 대한 쿼리를 간결하고 읽기 쉽게 작성할 수 있는 구문을 제공하는 .NET의 기능입니다. LINQ는 컬렉션, SQL 데이터베이스, XML 문서 등 다양한 데이터 소스에 대해 일관된 쿼리 구문을 제공합니다.
'나의 개발자 기록 > 본 캠프 개발 일지' 카테고리의 다른 글
2024년 8월 19일 월요일 개발일지 / 시연 영상을 찍기 위한 마지막 버그 및 오류 수정하기 (0) | 2024.08.19 |
---|---|
2024년 8월 16일 금요일 개발일지 / 유저 테스트 후, 게임 개선하기 (0) | 2024.08.16 |
2024년 8월 14일 수요일 개발일지 / 로그아웃 버튼 만들기 + 브로셔 작성 및 꾸미기 (0) | 2024.08.14 |
2024년 8월 13일 화요일 개발일지 / 다양한 버그 및 오류 해결하기 (0) | 2024.08.13 |
2024년 8월 12일 월요일 개발일지 / 몬스터 만들기 + 데이터 저장 및 불러오기 (0) | 2024.08.12 |