TIL/Unity

[Unity] 주의해야 할 기능 Find

Sh_Blog 2023. 11. 29. 09:39

유니티에서는 정말로 편리한 기능들을 제공하곤 하는데 그 중에서 내 기준으로 가장 편리했던

기능은 Find 기능이었다. 그래서 유니티를 전문적으로 배우지않고 취미 생활이나

간단한 포트폴리오 제작을 하는 과정에 있다면 Find를 엄청나게 난사하여 사용하는

경우가 있을 것이다. 그래서 오늘은 이러한 기능을 무분별하게 사용할 시 어떤 문제가 발생하는지

알아보고자 한다.

 

 

Find

Find는 내가 원하는 오브젝트를 string으로 검색하여 값을 반환해주는 기능이다.

 

 

Find의 단점

오브젝트가 어디에 있든 찾아오는 정말 편리한 기능이라고 생각한다.

하지만 Find가 편리하고 성능도 좋다고 생각해보면 싱글톤이란 디자인패턴의 존재

이유, 연관된 기능들로 구성되있는 구조적 설계 등 이러한 것들의 의미가 거의 사라지게

된다. 

 

Find를 주의해야 할 기능이라고 명시한 이유는 Find를 사용하면 원하는 오브젝트를 찾기위해

프로젝트 상에 있는 모든 오브젝트를 검색하여 값을 불러오기 때문이다.

물론 개인 프로젝트나 소규모 프로젝트라면 오브젝트가 많이 없기 때문에 괜찮지만 

대규모 프로젝트라고 가정하면 오브젝트의 수가 굉장히 많기 때문에 검색하는 과정에서

성능 저하를 크게 불러올 것이다. 

 

Find의 해결법

사실 Find와 관련된 기능은 쓰지 않는게 가장 좋지만 어쩔 수 없이 써야하는 경우가 찾아올 수 있다.

 

그럴 때는 사진과 같이 Start 부분에서 값을 한번 받아온 후에 FindData를 이용하여 사용하면된다. 

이 방법은 Find를 계속 호출하지 않고 한 번만 호출하면 된다는 장점이 있다.

만약 이렇게 쓰지않고 메소드마다 Find를 통해 호출하고 Update문에서 Find를 쓴다고 하면

아무리 소규모 프로젝트라 해도 엄청난 성능저하를 불러올 것이다.

 

 

결론

무슨 기능이든 적재적소에 쓰인다면 큰 효율을 낼 수 있다.