Python async 함수를 C++에서 co_await하기
개요 대부분의 인공지능 코드는 파이썬으로 작성되지만, 성능 향상을 위해 인공지능 외의 기능은 C++로 구현하고, 두 언어가 통신할 수 있도록 구성하는 것이 유리할 수 있다. 이런 구조에서는 파이썬의 비동기 함수를 사용할 가능성이 높아지며, 이를 C++의 코루틴에 통합하면 코루틴의 장점을 효과적으로 활용할 수 있다. 이번 글에서는 파...
URP에서 Outline Shader 만들기
Outline Shader 구현 방법 Outline shader를 구현하는 방법으로 가장 잘 알려진 2 pass로 outline을 그리는 방법을 사용할 것이다. 요약하면 다음과 같다. 기존 shader에 outline을 그리는 pass를 추가 앞면을 컬링해서 뒷 면만 그리기 추가한 pass의 vertex shader에...
라즈베리파이 4 쿨링 시스템 제작기
개요 2년 전에 라즈베리파이 4에 쿨링 시스템을 제작했던 경험을 기록하고자 한다. 현재 (2024년 7월) 기준으로 이미 라즈베리파이 5도 나와 있는 상태이지만 미루다가.. 이제 포스트를 작성한다. 예전에 라즈베리파이를 서버로 쓰다가 과열로 고장 낸 경험이 있기도 하고 요즘에는 라즈베리파이도 성능이 많이 올라서 쿨링 솔루션이 필수...
유니티에 Firebase Cloud Messaging으로 push notifications 구현하기
개요 이번에는 Firebase Cloud Messaging을 활용해서 push notifications을 구현할 것이다. Firebase 설정 먼저 Firebase console에 들어가서 새 프로젝트를 만들고 유니티 앱을 추가한다. 여기서는 유니티 앱을 만들 때 Android와 iOS를 모두 선택하는 것으로 했다. 앱을 추가...
Unity Addressables
개요 유니티는 앱을 여러 파일로 나눠서 빌드할 수 있는 에셋 번들 시스템을 제공한다. 이를 통해 큰 용량의 앱을 여러 파일로 나눠서 런타임에 다운로드하거나, 각 언어별 패키지 등의 컨텐츠를 사용자에 따라 선택적으로 받을 수 있게 하거나, 꼭 앱을 빌드하여 배포하지 않고 컨텐츠를 업데이트할 수 있다. 그러나 이러한 에셋 번들을 활용하...