[2025/07/09]TIL

오수호·2025년 7월 9일

TIL

목록 보기
37/60

면접 예상 질문 미리 답해보기

  1. Unity 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
  • 과거 TIL 주제로 유니티 생명주기에 관해 작성한 적이 있었다.

    유니티 생명주기 TIL

    해당 포스트를 참고하여 답변해보도록 하겠다.

    유니티 생명주기는 유니티에서 Monobehavior클래스를 상속받아 만들어지는 클래스에 대한 객체가 갖는 생명주기이다. Monobehavior를 상속받아 만들어진 클래스의 객체는 씬 안에서 일정한 흐름에 따라 자동으로 호출되는 함수들이 존재하는데, 이를 통해 생명주기를 구분할 수 있다.

    유니티 생명주기가 중요한 이유는, 게임이라는 시스템은 대게 런타임에 플레이어와 상호작용하여 결과를 만들어내기 때문에 어느타이밍에 객체가 생성되고 초기화 될 지, 프레임의 어느 순간 순간에 연산이 이루어지는 지에 따라서 버그가 발생할 수 도 있고 하지 않을 수 도 있기 때문이다. 만약 코드를 작성할 때 생명주기에 대해서 아무런 신경을 쓰지않고 코드를 작성하면 다른 객체에 대한 정보를 받아올 때 해당 객체가 아직 생성되기 전에 받아오려고 시도를 하게 된다던가, 카메라의 움직임이 화면을 덜덜 떨리게 만든다든가 하는 문제점이 생길 수 있다.

  1. MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.
  • MonoBehaviour클래스의 경우에는 유니티의 생명주기에 의해서 자동으로 호출되는 메서드들이 있고 이는 크게 Awake,OnEnable, Start, FixedUpdate, Update, LateUpdate, OnDisable, OnDestroy등이 있다. MonoBehaviour클래스를 상속받아 만들어진 객체는 게임이 실행되면 생명주기에 따라 자동으로 메서드들을 호출하게 된다. 가장 최초로 Awake, Awake이후 OnEnable과 Start가 호출되고 이후 고정된 시간간격으로 FixedUpdate를 호출하고 매프레임마다 Update호출 후 LateUpdate순으로 호출하고 이후 파괴될 떄 OnApplicationQuit, OnDisable, OnDestroy순으로 호출된다.
  1. Update, FixedUpdate, LateUpdate의 차이점에 대해 설명해주세요.
  • Update와 LateUpdate는 매 프레임마다 호출된다는 공통점이 있다. 다만 LateUpdate는 매 Update호출 이후에 LateUpdate가 이루어진다는 차이점이 있다. 반면에, FixedUpdate는 고정된 시간간격으로 호출된다는 차이점이 있다. 만약, FixedUpdate의 호출간격을 따로 설정하지 않는다면 0.02초마다 호출된다.
  1. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요.
  • Time.deltaTime은 매프레임사이의 시간 간격을 의미한다. 기기 성능이 극단적으로 달라지는 경우에 deltaTime값이 변할 수 있고, 이를 통해 성능이 다른 기기사이에서 동일한 물리처리를 보여줄 수 있게 만든다.
  1. 코루틴의 동작원리와 사용해본 예시를 함께 설명해주세요.
    IEnumerator 반환 함수를 Unity가 관리하며, yield return 키워드를 통해 함수를 일시 중지했다가 조건이 충족되면 다시 실행하는 방식이다. 코루틴은 사용해본 경험이 매우 많은데 대표적으로는 전투이후 사망처리된 유닛들의 시체를 일정 시간이후 삭제하게 만들거나 턴제 게임에서 게임매니저가 다음 턴으로 진행하는 로직에서 플레이어의 입력을 기다린다든가 하는 경우에 사용했다.
profile
게임개발자 취준생입니다

0개의 댓글