전체 글(10)
-
유니티 Color Hex 값 편리하게 사용하기
보통 컬러값을 사용할 때 Hex 코드를 많이 사용하는데 Hex코드를 간단하게 코드에서 사용할 수 있게 하는 법을 정리했다. 보통 헥스코드는 아래처럼 되어있는데 8자리인 경우(RGBA or ARGB)도 있고 6자리(RGB)인 경우도 있다. #FF0000FF #86B996FF 유니티에서는 RGB만 코드로 표현하지만 실제 Alpha 값까지 지정해서 사용하는 경우가 많기 때문에 오늘은 RGBA 기준으로만 작성했다. (코드를 보고 살짝만 수정하면 RGB or ARGB도 지원하게 만들 수 있다) public static class ColorHex { /// /// 0xRRGGBBAA /// public static Color32 FromRgba(uint rgba) { // 비트 시프트 연산을 이용해서 인자 rgba..
2024.02.28 -
std::async와 std::future 사용 시 주의점
void foo() { // 스레드 풀에서 작업 실행 auto future = std::async([]() { // 1000ms (1초) 대기 후 foo 출력. std::this_thread::sleep_for(std::chrono::milliseconds(1000)); std::cout
2024.02.27 -
Dictionary로 CPU 100% 로드?
개발 관련 지식이지만 읽어도 크게 도움되지는 않을 것 같지만 나름 신기할? 수도 있는 사례라 잡담에 적어본다. 라이브 서비스 중인 우리 게임 QA 테스트 중에 CPU가 100%를 찍으면서 컴퓨터 자체가 먹통이 되는 버그가 발생..! 팀원분들이랑 같이 찾아보니 적용된 SDK가 버전업 된 이후에 발생하고 있었다. 해당 SDK의 사용 시점 등을 분석해서 한 함수 하나가 용의 선상에 올랐다. 현재 플레이어의 정보를 서버로 보내는 분석용 API 함수였는데 이게 버전업이 되면서 동기에서 비동기로 변경되었다고 했다. 근데 재현해서 디버깅을 하려고 해도 재현되는 순간 CPU가 100%로 로드되면서 프로파일러가 렉 먹어서 똑바로 작동하지 않고, 또 겨우겨우 프로파일러를 열어서 봐도 딱히 에러 메시지라던지 그런게 보이지 ..
2024.02.23 -
XML 데이터 로딩 최적화 후기
https://evens.tistory.com/4 XML 데이터 로딩 최적화 사례 회사에서 현재 작업중인 프로젝트는 기획자 분들이 데이터를 XML로 관리하고 있다. 이 XML이라는 포맷은 사람이 읽고 쓰기는 쉽지만 용량이 크고 파싱이 어려운 문제가 있는데 프로젝트 라이브 evens.tistory.com 위에 작업했던 내용이 지난 주에 라이브 업데이트 됐는데 업데이트 하고 좀 지나서 유저분들 동향이 조금씩 올라오고 있다. QA 테스트 통과하고도 살짝 걱정됐었는데 다행히도 문제 없는것 같다. 저거 말고도 여러가지 많이 수정해서 적용했는데 300개 넘는 소스 파일 수정한 보람이 있는 듯! 나중에 또 느려지면 Lazy-Init 패턴 확대 적용해보거나 멀티 스레드 적용 고려해보기?
2024.02.05 -
유니티 에셋 번들 빌드 시간 단축 사례
조금 예전에 작업했던 일이지만.. 잊어버리기 전에 블로그에 적어두면 좋을 것 같아서 한번 써보는 글. 개요 회사에서는 지금 Jenkins로 앱 빌드 및 에셋번들 (패치파일) 빌드를 하고 있다. 보통 간단한 에셋번들 관련 테스트는 매일 아침에 자동으로 빌드되는 결과물들로 잘 사용하지만 가끔씩 내 작업 브랜치에서 변경된 구조로 번들을 뽑아서 확인해봐야 할 때가 있다. 번들 빌드를 한번 새로 뽑을때마다 1시간 30분 정도 소요되었었는데 개발 단계 테스트 할 때마다, 또 이후 QA 테스트 요청 할 때 Windows, iOS, Android 번들을 다 뽑아서 테스트해야 하다보니 시간이 엄청 오래 걸렸고 이거 더 빠르게 할 수 없나?! 하면서 빌드 로직을 조금 손봤었는데 그 과정에 대한 기록이다. 문제점 그때 살펴..
2024.02.01 -
유니티 C# 개발 시 사용하기 좋은 툴 및 사이트
1. JetBrains DotPeek 유니티 + C# 으로 개발 시 프로파일러를 많이 사용하는데 프로파일러는 만능이 아니다. GC.Alloc 이라고만 표시된다던지 (보통 boxing..), DisplayClass 등등 바로 알기 힘든 내용들이 나오는 경우가 많은데 이럴때 디컴파일러를 활용해서 IL 코드 및 Low-Level C# 으로 확인해보면 무엇이 문제인지 파악하기 쉬운 경우가 많다. JetBrains DotPeek https://www.jetbrains.com/decompiler/ dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains dotPeek is a free tool based on ReSharper. It can reliably de..
2024.01.03