Inflearn コミュニティ Q&A
콜백 함수, garbage colleection에 대해
作成
·
97
0
콜백 함수
콜백 함수는 update에서 도는 건가요? 매 프레임마다 충돌되는지 안 되는지 체크를 해야 충돌 감지를 할 것 같은데... Start함수랑 Update함수 다 지우고 void OnCollisionEnter 함수만 둬도 잘 돌아가는 게 무슨 원리인지 궁금해요.
가비지 콜렉션
시니어 프로그래머가 아닌 이상 입문자에게 이것까지 관리하기엔 어려울 것 같은데, 그냥 "==문자열" 이 코드만 피하면 되는 걸까요?
回答 1
0
안녕하세요. SouthCreate님,
유니티에서 하나의 스크립트(MonoBehavior)는 내부적으로 계속 반복하는 Event Loop가 있습니다. 첨부해드린 이미지를 보시면 충돌 콜백함수(OnCollisionXXX, OnTriggerXXX)가 반복적으로 호출되고 있습니다. 따라서, 스크립트에 OnCollisionEnter 함수만 있어도 매 FixedUpdate 함수가 호출되는 주기에 따라서 충돌여부를 감지하고 있습니다. 다음 문서를 한번 참고하시면 도움이 되실거예요. 유니티메뉴얼-이벤트함수실행순서

가비지 컬렉션의 경우 초심자부터 신경을 쓰기에는 현실적으로 어려울 수 있습니다. 하지만, 자신의 코드에서 가비지 컬렉션이 발생하는지 처음부터 꼼꼼히 따져보는 습관을 갖으시길 권해드립니다. 우선 강좌에서 말씀드린 CompareTag를 사용하시는 것부터 익히셔도 무방합니다.^^ 또한,
개발중에 프로파일러를 통해 어느부분에서 가비지 컬렉션이 발생하는지 확인할 수 있으며, 점차 어떤 코드, 어떤 메소드가 가비지를 발생시키는지 차근차근 알아가셔도 되세요.
꼭 완강하시길 기원합니다.
감사합니다.





