Ad Block 한번만 꺼주시면 안될까요..?
게임 개발/유니티C#

유니티 가비지 컬렉터(GC) (실행방법, 하는 역할, 사용처)

UniCoti(유니코티) 2022. 10. 2.

가비지 컬렉터는 개발자의 면접 질문으로도 많이 나오는

질문이며, 코딩을 오래했다면

어디선가는 한번쯤 들어봤을만한 말이다.

 

유니티 에서의 가비지 컬렉터는 

더이상 필요없어진 오브젝트같은 필요없는

메모리를 지우는걸 말한다.

 

그렇기에 가장 대표적인 사용예는 

Destroy로 오브젝트를 지운 직후

가비지 컬렉터 기능을 실행하여

메모리를 줄이는것이다.

가비지 컬렉터를 쓰는 방법은

System.GC.Collect();

로 매우 간단하다.

 

우리는 없애진 오브젝트에 쓰려하기 때문에

 

Destory(gameObject);

밑에(이 줄)에 쓰면 좋겠지만

 

오브젝트가 없어지면 그 밑 코드는 실행할수 없기 때문에

 

유니티의 OnDestroy() 함수안에 작성해주면

오브젝트가 파괴되었을때 실행하게 되어

원하는 결과로 나오게 되는걸 확인할 수 있다.

 

(하지만 이런식으로 쓰게 되면 오브젝트가 많이 파괴되는 게임에서 렉을 유발할 수 있다.)

private void OnDestroy() {
        System.GC.Collect();
    }

이렇게 실사용적인 예제로, 원리는 설명하지 않았는데,

그 이유는 생각보다 어렵기 때문이다.

 

나는 개인적으로 많은 상황에서 그랬듯

구글에 한번 찾아보면 원리, 사용법 다 익힐 수 있을줄 알았는데,

필자의 생각보다 간단히 수준이 아니라

좀 깊게 하루를 정해두고 이것만 배워야 할 정도로

어렵게 느껴져서 실 사용 예제만 소개해 보았다.

 

어드레서블을 배우려 할때도 이런 느낌이였다.

(생각보다 어려웠다는 얘기.)

 

이상 도움이 되었길 바라며,

 

끝.

 

댓글

💲 추천 글