Unity로 개발을 하다보면 스크립트를 작성할 때, Find 함수가 간절한 순간이 종종 있습니다. 오브젝트를 미리 Inspector에서 연결해놓지 못한 경우나 GetComponent로 원하는 컴포넌트를 찾을 수 없을 경우에 사용하고 싶어지는 경우가 많습니다.
하지만 여러 강의를 보거나 Unity를 어느 정도 다뤄본 사람에게 배우다보면 Find 함수는 지양하는 것이 좋다는 이야기를 많이 듣게 됩니다. 그 이유는 바로 탐색으로 인한 성능 저하때문입니다.
Find 함수를 실행하면 Hierachy상에 있는 오브젝트를 탐색하여 원하는 오브젝트를 가져오게 됩니다. 이 탐색하는 과정이 Update 함수에서 실행된다면 꽤 많은 부하가 걸리게 되겠죠. 이 때문에 Find 함수의 잦은 호출은 지양하는 것이 좋습니다.
저 같은 경우에는 꼭 써야 한다면 Awake나 Start, 또는 직접 만든 Init 함수에서 활용하곤 합니다.