Deff_Dev

[Unity] MonoBehavior와 Unity 생명주기 본문

면접 질문 정리/Unity

[Unity] MonoBehavior와 Unity 생명주기

Deff_a 2024. 7. 15. 17:08

1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?

  • Update와 FixedUpdate는 timeScale에 영향을 받기 때문에 호출되지 않는다.
  • Time.timeScale을 0으로 설정하면 게임의 시간 흐름이 멈추게 되어, 시간에 의존하는 Update와 FixedUpdate는 실행되지 않는다.

2. Update의 호출주기에 영향을 주는 것은 무엇일까요?

  • 컴퓨터의 프레임에 영향을 받는다. (프레임 당 Update 호출)
  • 즉, 프레임 당 한 번씩 호출되기 때문에, FPS가 높은 컴퓨터에서는 Update가 더 자주 호출되고, FPS가 낮은 컴퓨터에서는 Update가 덜 자주 호출된다.
  • 이를 보정하기 위해 Time.deltaTime을 사용하여 프레임 간의 시간 차이를 반영해 동일한 처리를 하도록 한다.

3. FixedUpdate의 호출주기에 영향을 주는 것은 무엇일까요?

  • FixedUpdate는 고정된 시간 간격으로 호출되며, Time.fixedDeltaTime에 의해 결정된다.
  • FixedUpdate는 프레임에 영향을 받지 않고 일정한 간격으로 호출되기 때문에, 물리 연산 같은 시간에 민감한 로직을 처리하는 데 사용된다.

4. Awake와 Start, OnEnable의 호출 순서는 어떻게 될까요?

  • Awake → OnEnable → Start

5. Unity 생명주기(Unity Life Cycle)에 대해서 설명해주세요.

 

[Unity/C#] 생명주기와 yield return 호출 순서

Unity 생명 주기란 ? 스크립트가 실행될 때 유니티의 이벤트 함수들이 실행되는 순서를 말합니다. 유니티 생명 주기 표 많이 사용 되는 이벤트 함수들의 순서를 적어보면 Awake → OnEnable → Start →

deff-dev.tistory.com

  • 주로, 사용하는 이벤트 함수만 나열하겠다.
    1. Awake ( )
    2. OnEnable ( )
    3. Start ( )
    4. FixedUpdate ( )
    5. Update ( )
    6. LatedUpdate ( )
    7. OnDisable ( )
    8. OnDestry ( )

6. MonoBehaviour 클래스의 주요 메서드와 그 기능에 대해 설명해주세요.

 

[Unity/C#] 유니티 이벤트 함수

해당 글을 보시기 전에 유니티의 생명주기에 대해 잘 모르신다면, 먼저 해당 글을 보시는 것을 권장드립니다. [Unity] 생명주기와 yield return 호출 순서Unity 생명 주기란 ? 스크립트가 실행될 때 유

deff-dev.tistory.com

  • MonoBehaviour 클래스에서 Start와 Awake의 차이점은 무엇이며, 이를 적절히 사용하는 방법에 대해 설명해주세요.
    • 공통점
      • Awake와 Start는 GameObject가 씬에서 로드될 때, 딱 한번 호출되는 이벤트 함수이다.
    • 차이점
      • Awake는 스크립트 컴포넌트의 활성화 유무에 상관없이 호출된다.
      • Start는 스크립트 컴포넌트가 활성화되어 있다면 호출된다.
      • 호출 순서는 Awake → Start 이다.
    • 사용법
      • 보통 Awake는 본인 오브젝트에 대한 참조를 초기화할 때 사용하고 Start는 다른 오브젝트의 참조를 불러올 때, 사용한다.

7. Update, FixedUpdate, LateUpdate의 차이점에 대해 설명해주세요.

  • Update
    • 매 프레임마다 호출되는 함수로 불규칙적으로 실행된다.
  • FixedUpdate
    • 고정 단위마다 호출되는 함수로 규칙적으로 실행된다.
    • 주로, 규칙적으로 실행되기 때문에 물리 처리 관련 로직들을 작성한다.
  • LateUpdate
    • Update 함수가 호출된 후, 호출되는 함수이다.
    • 주로, 모든 처리가 다 끝나고 적용시켜야될 기능들을 구현할 때, 사용한다.
      • ex) 플레이어를 따라다니는 카메라

8. Time.deltaTime이란 무엇이며, 사용하는 이유에 대해 설명해주세요.

https://itmining.tistory.com/46

  • Time.deltaTime은 이전 프레임이 완료되기까지 걸린 시간을 반환한다.
  • 프레임은 매초마다 달라지기 때문에, 모든 프레임 마다 실행되는 Update 함수가 FPS에 상관없이 동일한 처리를 하기 위해 사용한다.
    • Update 함수에 1m 씩 이동하는 로직이 있을 때, 100 프레임이 나올 때는 100m를 가게되지만 60 프레임이 나올 땐 60m 밖에 가지 못한다.
    • 그렇기 때문에 Time.deltaTime을 이용하여 매 프레임마다 달라지는 처리를 프레임과 상관없이 동일한 처리를 하도록 한다.

'면접 질문 정리 > Unity' 카테고리의 다른 글

[Unity] 게임 수학  (0) 2024.07.27
[Unity] JSON과 직렬화  (0) 2024.07.22
[Unity] 최적화  (1) 2024.07.17
[Unity] 코루틴  (1) 2024.07.16