인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

SouthCreate님의 프로필 이미지

작성한 질문수

절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스

충돌 검출 - 충돌 콜백 메소드

콜백 함수, garbage colleection에 대해

작성

·

27

0

  1. 콜백 함수

     

    콜백 함수는 update에서 도는 건가요? 매 프레임마다 충돌되는지 안 되는지 체크를 해야 충돌 감지를 할 것 같은데... Start함수랑 Update함수 다 지우고 void OnCollisionEnter 함수만 둬도 잘 돌아가는 게 무슨 원리인지 궁금해요.

  2. 가비지 콜렉션

     

    시니어 프로그래머가 아닌 이상 입문자에게 이것까지 관리하기엔 어려울 것 같은데, 그냥 "==문자열" 이 코드만 피하면 되는 걸까요?

답변 1

0

이재현님의 프로필 이미지
이재현
지식공유자

안녕하세요. SouthCreate님,

  1. 유니티에서 하나의 스크립트(MonoBehavior)는 내부적으로 계속 반복하는 Event Loop가 있습니다. 첨부해드린 이미지를 보시면 충돌 콜백함수(OnCollisionXXX, OnTriggerXXX)가 반복적으로 호출되고 있습니다. 따라서, 스크립트에 OnCollisionEnter 함수만 있어도 매 FixedUpdate 함수가 호출되는 주기에 따라서 충돌여부를 감지하고 있습니다. 다음 문서를 한번 참고하시면 도움이 되실거예요. 유니티메뉴얼-이벤트함수실행순서

image.png
  1. 가비지 컬렉션의 경우 초심자부터 신경을 쓰기에는 현실적으로 어려울 수 있습니다. 하지만, 자신의 코드에서 가비지 컬렉션이 발생하는지 처음부터 꼼꼼히 따져보는 습관을 갖으시길 권해드립니다. 우선 강좌에서 말씀드린 CompareTag를 사용하시는 것부터 익히셔도 무방합니다.^^ 또한,

    개발중에 프로파일러를 통해 어느부분에서 가비지 컬렉션이 발생하는지 확인할 수 있으며, 점차 어떤 코드, 어떤 메소드가 가비지를 발생시키는지 차근차근 알아가셔도 되세요.

꼭 완강하시길 기원합니다.

감사합니다.