유니티 애니메이터 최적화

ID 캐싱하기

애니메이터의 파라미터를 컨트롤 할 때는 가급적 ID를 캐싱해서 사용해야 한다고 합니다!
 
ChatGPT의 말에 따르면

Unity에서 애니메이터 매개변수는 일반적으로 Animator 클래스의 SetFloat, SetBool 및 SetInteger 메서드를 사용하여 제어됩니다. 이러한 메서드는 설정 중인 매개 변수를 식별하기 위해 문자열 매개 변수 이름을 사용합니다. 그러나 문자열을 사용하여 매개변수를 식별하는 것은 느리고 오류가 발생하기 쉽습니다. 문자열은 메모리 할당 및 할당 해제가 필요한 참조 유형이고 문자열 비교는 정수 비교에 비해 느릴 수 있기 때문입니다. 이러한 잠재적인 성능 문제를 방지하기 위해 Unity는 정수 ID를 사용하여 애니메이터 매개변수를 식별하는 대체 메커니즘을 제공합니다. 이러한 ID는 애니메이터 매개변수가 추가될 때 Unity에 의해 자동으로 생성되며 문자열 매개변수 이름을 취하고 해당 정수 ID를 반환하는 Animator.StringToHash 메서드를 사용하여 액세스할 수 있습니다. 이러한 정수 ID를 캐싱하고 사용하면 문자열 매개변수 이름 사용과 관련된 성능 오버헤드 및 잠재적 오류를 피할 수 있습니다. 이것은 많은 수의 애니메이터 매개변수로 작업하거나 VR 응용 프로그램이나 높은 그래픽 요구 사항이 있는 게임과 같이 성능이 중요한 경우에 특히 중요할 수 있습니다.

사용방법

 static은 지워도 무방..!