Unity(6)
-
유니티 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 -
Dictionary로 CPU 100% 로드?
개발 관련 지식이지만 읽어도 크게 도움되지는 않을 것 같지만 나름 신기할? 수도 있는 사례라 잡담에 적어본다. 라이브 서비스 중인 우리 게임 QA 테스트 중에 CPU가 100%를 찍으면서 컴퓨터 자체가 먹통이 되는 버그가 발생..! 팀원분들이랑 같이 찾아보니 적용된 SDK가 버전업 된 이후에 발생하고 있었다. 해당 SDK의 사용 시점 등을 분석해서 한 함수 하나가 용의 선상에 올랐다. 현재 플레이어의 정보를 서버로 보내는 분석용 API 함수였는데 이게 버전업이 되면서 동기에서 비동기로 변경되었다고 했다. 근데 재현해서 디버깅을 하려고 해도 재현되는 순간 CPU가 100%로 로드되면서 프로파일러가 렉 먹어서 똑바로 작동하지 않고, 또 겨우겨우 프로파일러를 열어서 봐도 딱히 에러 메시지라던지 그런게 보이지 ..
2024.02.23 -
유니티 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 -
C#의 람다 (익명 함수) 사용 시 주의할 점
1. C# 의 람다는 capture by reference 만 존재한다 internal class Program { static void Main(string[] args) { List actions = new List(10); for (int i = 0; i { Console.WriteLine(i); }); } foreach (Action action in actions) { action.Invoke(); } } } (많이 나오는 주의 사항이라 다들 알고 있을 것 같지만 주의사항 모음이니 추가) C# 의 람다 식을 처음 접한 사람들은 위의 코드를 보고 출력이 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 와 같이 나올 것이라고 예측하는 사람도..
2024.01.03 -
유니티 ScriptedImporter 써보기 2부
1부에서는 ScriptedImporter의 간단한 사용법을 알아봤는데, 2부에서는 이미 Built-in 임포터로 정의되어있는 확장자들을 오버라이드 하는 법을 알아볼거다. 회사에서 현재 진행중인 프로젝트에서는 맵 파일을 bytes 확장자로 저장하고 있는데 해당 bytes 파일은 로드할 때 시간이 좀 걸리는 상황이였다. (로드할 때 TextAsset 으로 로드해서 여러 처리 과정이 있었다. GC도 좀 발생하고..) 이때 확장자를 바꿔서 등록하기에는 몇백개의 맵 파일이 있고, 우리 팀에서 관리하지 않는 툴에서 파일을 수정/저장하고 있었다. 물론 확장자를 바꾸려면 바꿀 수 있는데 그래도 오버라이드가 가능하기 때문에 파일을 많이 바꾸기 싫어서 시도해봤다. ScriptedImporter 오버라이드 해보기 자 먼저 ..
2023.07.14 -
유니티 ScriptedImporter 써보기 1부
회사에서 작업하면서 ScriptedImporter 를 적용해 보면서 자료를 많이 찾아봤었는데 쉽게 나오지 않았어서 다른 사람들도 보고 쉽게 따라할 수 있게 여기에 따로 정리한다. 총 2부로 구성해 볼 예정 1부는 ScriptedImporter 사용법. 2부는 내가 좀 찾는데 시간이 걸렸던 built-in 임포터에서 사용 중인 확장자의 임포터 오버라이드 방법. ScriptedImporter란? ScriptedImporter는 유니티에서 에셋을 임포트하는 AssetImporter를 사용자 정의할 수 있게 만든 클래스다. 이걸 설명하려면 먼저 에셋 임포터에 대해서 설명해야 하는데 알고 있는 사람들은 뒷부분으로 넘어가면 된다. AssetImporter란? 먼저 AssetImporter에 대해서 설명하자면 유니티..
2023.07.13