1. LINQ를 사용하지 않는다. LINQ는 사용하기는 쉽지만, 알고리즘을 직접 만들어 사용하는 것보다 일반적으로 더 많은 자원이 필요하다. 2. 최대한 GC가 동작하지 않도록 한다. GC(가비지 컬렉터)는 자동 메모리 관리자로 메모리 할당 및 해제를 관리한다. 자동으로 관리되기 때문에 개발자는 편하지만 동작하게 될 때 많은 자원을 사용하게 된다. GC가 동작하는 시점은 시스템의 메모리가 부족해지거나 관리되는 힙에 허용되는 임계값을 초과하는 경우이다. 즉 사용되지 않는 메모리가 많아질수록 GC가 동작하게 될 여지가 많아지기 때문에 이를 막아야 한다. 3. boxing에 주의한다. boxing이란 int, bool, 등과 같은 값 형식 변수를 참조 형식 변수로 래핑하는 것으로 래핑하게 되면 메모리에 할당되..
Color // 참고2 각 색상 구성요소는 0에서 1 사이의 범위를 갖는 부동 소수점 값이다. Color32 // 참고3 32비트 형식으로 RGBA 색상을 표현한다. 각 색상 구성요소는 0~255 범위의 바이트 값이다. 여기서 Color32가 아닌 Color를 사용하는 것은 별로 권장하지 않는다. 이유는 아래와 같다. 1. float 값으로 색을 조정하는건 불편하다. 2. Color32를 대신 사용하면 색상의 byte-float 변환을 방지하고 임시 메모리를 덜 사용한다. (For performance reasons, consider using colors32 instead. This will avoid byte-to-float conversions in colors, and use less tempor..
Canvas에 TextMeshPro를 추가하고 스크립트로 색상을 변경하려 할 때 색상이 변경되지 않는 문제가 발생했다. 문제가 됐던 부분은 색상을 변경할 때 Color 구조체를 사용했기 때문이었다. Color 구조체 대신 Color32 구조체를 사용하니 문제가 발생하지 않았다. 글을 작성한 후 추가로 확인했을 때 구조체의 문제가 아닌 것을 확인했다. 기존에는 색상의 RGB 값을 검색하여 원하는 색상을 찾아 아래와 같이 코드를 작성했었다. Color color = new Color(255, 0, 0, 255); 하지만 Color 구조체의 경우 Byte 형태가 아닌 float 형으로 데이터를 입력해야 하는데 Byte 형으로 값을 입력하는 것이 문제가 되어 색상이 변경되지 않았던 것이다. * 추가 검색을 하다..