개요 Unity의 Debug.Log 같은 함수는 System.object 타입을 매개변수로 받는다. 문제는 object 타입에 값 타입이 만나면 boxing 이 발생하기 때문에 성능상 좋지 않으며 Debug.Log류는 기본적으로 문자열 연산이기 때문에 쉽게 가비지가 발생한다.
이것뿐이 아니라, 그 외에도 외부 CPP 함수에서 여러 연산을 한다고 안다. 그래서 유니티 최적화 관련 글을 보면 경험상 대부분, Debug.Log 류 함수는 빌드할때 지우라고 한다.
때문에 System.Diagnostics.Conditional 어트리뷰트를 위주로 Debug 클래스를 랩핑해서 쓴다. (빌드 프로파일에 Conditional 어트리뷰트 옵션에 따라 특정 함수를 빌드에서 제외하는 옵션이 있다) 에디터에서 로그를 끌 생각이 없다면 굳이 추가로 심볼을 만들지 않고 기본 제공되는 UNITY_EIDTOR 만으로 충분하다.
[Conditional("UNITY_EDITOR")] //기본적으로 정의되어 있는 심...
원문 링크 : Unity Debug 최적화