개요 빌드, 배포등의 자동화 → 왜 자동화 해야하는 가? 빌드를 하는 과정은 시간도 오래 걸리고 자주, 반복적으로 해줘야 하기 때문에 수동으로 해주면 많은 시간을 잡아 먹게 된다. (빌드란, 실행 애플리케이션을 추출하는 과정이다.) 이렇게 반복되는 과정은 버튼 하나 or 단축키로 자동화 할 필요가 있다. DevOps에서 필수적인 업무중 하나인 CI/CD 파이프라인 구축은 현재 사용법이 매우 용이 해진 상황이다. 일반 개발자들도 충분히 구현 할수 있다. 어떻게 구현을 하는 가 먼저, 어떤 도구를 사용해야할지 정해야 한다. 후보군 : Jenkins, Unity Cloud Build, Github Actions 장단점 비교 jenkins : 무료, 전용 mac 또는 pc 필요, 사전 지식 필요하다, 확장성 높..
개발을 하다 보면 Debugging을 자주 사용하게 된다. 하지만, Debugging 자체가 성능을 많이 잡아 먹는 다고 하니, 개발이 끝난 이후에는 일일이 삭제를 하는 편이다. 또한, 빌드를 했을 때도 Debugging은 그대로 작동을 하게 된다. Android 빌드를 하고 Logcat을 찍어보면 Debug 클래스가 그대로 작동하는 것을 확인 할수 있다. 빌드에 포함 시키지 않고, 에디터에서만 돌아가게 하는 방법은 [System.Diagnostics.Conditional("UNITY_DEDITOR")] 을 사용하면 된다. 에디터 일때만 Debug.logger.logEnabled = false 을 사용하는 방법은 클래스 호출은 그대로 이기 때문에 비효율적이다. 하지만, 먼제 제시한 방법은 빌드 했을 때,..
각 절기 마다 발표자를 선정해 공부한 내용을 발표하는 발표 모임이 있다. 이번 하지(6월 21일)에 발표 기회를 얻어 발표를 하게 되었는데, 발표 주제는 게임 엔진의 역사와 동작 원리이다. 현재 유니티 개발을 하면서, 게임 엔진에 대한 호기심이 생기기 시작했다. 또한, 이전 이직 준비를 하며서, 피드백을 들은 내용 중 게임 로직 개발을 당연히 해야 하는 것이다. 그렇기에, 자신의 강점을 가지고 가야 한다. 네트워크, 쉐이더, 서버 등 각분야 중 자신의 강점을 가지고 가야 경쟁력을 키울 수 있다 이런 피드백을 듣고 나니, 게임 분야에 어떤 분야들이 있고, 그에 대해 깊이 파보지 않았던 것 같다. 단순한 인디 게임 개발이라면, 현재 나와있는 통합 게임 개발 솔루션을 통해 간단한 게임은 개발 할수가 있다. 게..
Nuget package란? nuget 패키지란, .NET framework을 위한 패키지 매니저이다. 다음과 같은 이점을 가지고 있는데, 추가 기능 접근: NuGet 패키지는 유틸리티, 프레임워크, API 등을 포함한 다양한 미리 작성된 코드와 라이브러리를 제공한다. 이러한 패키지는 개발 시간과 노력을 절약할 수 있는 기능과 도구를 제공하여 Unity 프로젝트를 강화할 수 있다. 코드 재사용성: NuGet 패키지는 이미 다른 개발자들에 의해 개발되고 테스트된 코드와 구성 요소를 재사용할 수 있도록 한다. 이를 통해 개발 속도를 높이고 프로젝트의 품질을 향상시킬 수 있으며, 패키지가 제공하는 전문 지식과 기능을 활용할 수 있다. 타사 통합: 많은 NuGet 패키지는 타사 서비스, 플랫폼 및 API와의 통..
UniTask에 대해서는 이전 들에서 알아 보았다. https://note4iffydog.tistory.com/43 Unitask의 정체 - (feat. task, 비동기, Unity는 싱글스레드?) Unitask? Unitask는 unity용의 async-await integration 패키지이다. efficient allocation free async/await provider라고 하는 데, 메모리 할당에 효율적인 솔루션을 제공한다는 느낌이다. 어떻게 이게 가능한것인가? 그 note4iffydog.tistory.com 이전 글에서도 Unitask 대한 어떤 정의 보다는 왜 나왔고, 어떤 원리로 돌아 가는 지 확인하는 글을 써보았다. 이제 왜 나왔는 지 알아보았으니, 어떻게 쓰는 지 알아 봐야 할 차..
어드레서블이란? 어드레서블은 Unity 패키지로, 프로젝트에서 asset을 로드하고 관리하는 간편하고 효율적인 방법을 제공합니다. 비동기적으로 asset을 로드 할 수 있어 게임의 성능을 향상시키고 로딩 시간을 줄일 수 있습니다. 어드레서블은 자동 의존성 관리, 콘텐츠 업데이트, 버전 관리 등의 기능을 제공하여 자산 관리 과정을 간소화할 수 있습니다. 어드레서블을 사용하면 원격 서버, 로컬 스토리지, 에셋 번들과 같은 다양한 위치에 자산을 저장하고 중앙 집중식 시스템을 통해 관리할 수 있습니다. 비동기 에셋 로드 / 생성 비동기 load var result = await Addressables.LoadAssetAsync(path); 바로 생성 Addressables.InstantiateAsync("As..
개요 테스트환경이 구축 되어있지 않으면, 어떤 기능에 대한 테스트를 하기 위해서 매번 처음부터 플레이를 해봐야 하는 상황이다. 개별코드 단위에 대한 분류도 잘 안되어 있을 가능성도 크다. Why? 왜 테스트 환경을 만들기 꺼려할까? 비즈니스 로직에 집중하는 시간도 부족한데 무슨 테스트를 작성하는가? → 따로 시간을 내서 작업을 안했으면, 손도 못 댔을 작업 이것도 나중에 유지보수가 되어져야하니 부담스럽다 → 막연하게 느껴진다. 귀찮다 → 하고나서 어떤 눈에 보이는 결과가 바로 있는 게 아님 왜 필요할까? 버그를 조기에 잡아내는 것을 기본 목적 단위 테스트를 사용한다면 연관 컴포넌트가 개발되지 않더라도 개발이 마무리 됬다고 증명 테스트 스위트를 이용하여 모든 테스트를 동시에 실행 단위 테스트는 리펙토링에 ..
Unitask? Unitask는 unity용의 async-await integration 패키지이다. efficient allocation free async/await provider라고 하는 데, 메모리 할당에 효율적인 솔루션을 제공한다는 느낌이다. 어떻게 이게 가능한것인가? 그전에, 짚고 넘어가야 할점이 있다. Task인데, 하나의 operation을 할당하기 위해선 Task가 쓰이게 된다. Task(클래스)는 하나의 operation을 나타내고 return값이 없으며, 비동기적으로 돌아간다. .NET 프레임워크 4에서 소개된 task-based asynchronous pattern 주요 기능중 하나이고, 메인 쓰레드에서 동기적으로 실행하는것이 아닌 쓰레드 풀에서 비동기적으로 실행하게 된다. (쓰레..