분류 전체보기(12)
-
Unity 에서 Custom Awaitable 객체 만들기 메모
키워드 Task (대기 가능한 객체)- 내가 만든 MyTask 라는 클래스가 있을 때, MyTask를 await 하려면 MyTask 클래스가 MyTaskAwaiter(가명)를 반환하는 GetAwaiter() 를 구현해야 함.- MyTask를 async 메서드의 반환형으로 사용하고 싶다면 AsyncMethodBuilder 지원이 필요함.TaskAwaiter (대기자)- ICriticalNotifyCompletion 인터페이스를 구현해야 함.- 결과를 반환하는 GetResult() 함수를 구현해야 함.- 작업이 완료되었는지 알 수 있는 IsCompleted 프로퍼티를 구현해야 함.ICriticalNofifyCompletion- TaskAwaiter 구현 시 사용 작업이 완료된 후 실행될 콜백 예약에 대해 구..
2025.07.17 -
C# Unity와 Roslyn Analyer 연동하기
https://github.com/wisemin01/UnityRoslynAnalyzerSample GitHub - wisemin01/UnityRoslynAnalyzerSample: Unity 엔진에 C# Roslyn Analyzer을 적용한 샘플Unity 엔진에 C# Roslyn Analyzer을 적용한 샘플 . Contribute to wisemin01/UnityRoslynAnalyzerSample development by creating an account on GitHub.github.com C#은 코드 분석을 위한 API인 Roslyn을 제공하고 있다. 해당 Roslyn API를 이용해서 유니티 엔진에서 foreach 사용 시 Enumerator에서 할당(boxing 또는 reference ty..
2025.03.12 -
유니티 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