본문 바로가기

분류 전체보기8

유니티 시스템 프로그래밍 Pt.1 - 7~8 주차 개요7~8주차 학습을 진행하였다 학습 내용은 다음과 같다모델링 된 데이터를 CSV로 어떻게 관리/사용 하는지 학습GPM을 사용한 무한 스크롤 세팅 내용5. Lobby 시스템 제작유저 인벤토리 시스템모델링 된 데이터를 CSV로 관리/사용하는법모델링은 5자리의 숫자를 이용, 각 자릿수를 무기 종류 및 등급 등으로 분류하였고이 데이터를 게임 내에서 추출하여 필요한 동작을 구현하였다 예를들어 다음과 같은 방법으로 등급을 추출하고 사용한다var itemGrade = (ItemGrade)(m_InventoryItemSlotData.ItemId / 1000 % 10);var gradeBgTexture = Resources.Load($"Textures/{itemGrade}"); 진행하다보니, 한 번도 주도적으로 제대.. 2024. 11. 8.
Unity UniTask와 Coroutine 개요Unity 프로젝트에서 자주 사용되는 라이브러리인 UniTask에 대해 간단히 소개하고, Coroutine과 비교하여 왜 가능하면 UniTask를 사용하는 것이 좋은지 설명하려고 한다 우아한 스터디를 진행하면서 새로운 기술을 배우는 것도 중요하지만, 사용하는 기술을 제대로 이해하고 활용해야 부작용 없이 최상의 효과를 낼 수 있다고 생각했고, 그래서 이 글을 쓰게 되었다 이 글은 다음의 흐름으로 작성될 예정이다Coroutine과 UniTask 기술 소개 공통점과 차이점 비교 UniTask를 사용해야하는 이유검증하기 위한 테스트 코드 작성결론  내용1. Coroutine과 UniTask 기술 소개 CoroutineUnity Documentation - Splitting tasks across frames.. 2024. 10. 4.
유니티 시스템 프로그래밍 Pt.1 - 4주차 개요4주차 학습을 진행하였다 학습 내용은 다음과 같다Lobby 씬 구조 및 디자인 패턴 (LobbyManager, LobbyUIController)게임 설정 (UserSettingsData, SettingsUI)뒤로가기(ESC/BACK) 처리 (LobbyUIController, ConfirmUI)유저 재화 관리 및 커스텀 메뉴 (UserGoodsData, GoodsUI, CustomTools)  내용5. Lobby 시스템 제작Lobby 씬 구조 및 디자인 패턴 (LobbyManager, LobbyUIController)강사의 핵심 아이디어는 다음과 같다LobbyManager- 비지니스 로직 제어 및 데이터 주입LobbyUIController- 사용자 인터렉션 관리 및 주입된 데이터를 유저에게 보여주는 로.. 2024. 9. 29.
우아한 스터디 '대규모 시스템 설계 2'를 마치고 개요스터디 소개우아한형제들에서 주관하는 스터디로서, 여러 테마가 존재하며 관심있는 분야에 신청하는 형태이다이번 여름시즌에도 여러 테마가 있었으며 그 중 우아한 대규모 시스템 설계 스터디 2 에 참여하였다.  가상 면접 사례로 배우는 대규모 시스템 설계 기초 2 를 읽고 정해진 범위의 내용에 대해 지식을 습득하고 의문점이 드는 부분을 추려 모두와 함께 이야기해보는 방식이었으며24.06.01 ~ 07.27 까지 9주 동안 매주 토요일 아침 9시부터 11시까지 온라인으로 진행되었다 평소에도 소프트웨어 아키텍트를 짜는 것과 클래스 설계에 관심이 많았다그런데 슬랙에 세팅한 RSS에서 관심사와 정확히 부합하는 스터디의 모집 공고를 보고 신청하고 기다렸는데, 감사하게도 멤버로 선정해주셨고 스터디에 참여하게 되었다 어.. 2024. 9. 21.
C# ContainsKey vs TryGetValue 개요유니티 시스템 프로그래밍 Pt.1 스터디 2주차를 진행하던 중, 더 최적화할 수 있을 것 같은 코드를 발견하여 이에 대한 의견을 제시하였다 코드는 다음과 같다./// /// 지정된 BGM을 재생합니다./// /// 재생할 BGM의 열거형 값.public void PlayBGM(EBGM bgm){ if (_currentBGMSource) { _currentBGMSource.Stop(); _currentBGMSource = null; } if (!_bgmDic.ContainsKey(bgm)) { Debug.LogError($"Invalid clip name. {bgm}"); return; } _currentBGMSo.. 2024. 9. 17.
유니티 시스템 프로그래밍 Pt.1 - 3주차 개요3주차 학습을 진행하였다 학습 내용은 다음과 같다UI 시스템 구현  내용4. 필수 게임 시스템 제작UI 시스템 구현강사의 구현 아이디어는 다음과 같았다BaseUI 클래스를 상속받은 UI를 구현하고 그 안에 BaseUIData를 상속받은 데이터 클래스를 정의하여 사용구현된 객체들을 UI Pool에 저장, UIManager를 사용하는 형태의 아이디어 특히 객체를 설계/사용하면서 신경쓰는 지점 중 하나가 객체는 생성되면서 유효한 상태를 지니고 있어야 한다 인데, 강사가 제시한 솔루션은 OpenUI 메서드 호출을 이용한 설계로 부분을 확실하게 보장하는 것 같아 마음에 들었다 하지만 Stack의 메커니즘을 가지고 구현을 진행한 것 같은데 그럴 거면 아예 현재 활성화된 UI를 관리하는 UI Stack을 사용하여.. 2024. 9. 16.