Unity Object lifecycle

agnusdei·2023년 10월 26일

Unity에서 MonoBehaviour 스크립트의 각 훅(콜백 메서드)이 언제 호출되며 각각 어떤 종류의 작업을 수행하는지 예시와 함께 더 자세히 설명하겠습니다.

  1. Awake():

    • 호출 시점: 스크립트가 게임 오브젝트에 추가될 때, 스크립트가 생성될 때 호출됩니다.
    • 일반적인 사용 사례:
      • 초기화 및 설정 작업.
      • 다른 컴포넌트에 대한 참조 설정.
      • 게임 오브젝트의 초기 상태 설정.
      • 로그인
    • 예시:
      private void Awake()
      {
          playerTransform = GetComponent<Transform>();
          health = 100;
      }
  2. OnEnable():

    • 호출 시점: 스크립트가 활성화될 때 호출됩니다.
    • 일반적인 사용 사례:
      • 이벤트 구독.
      • 초기화 작업.
      • 활성화
    • 예시:
      private void OnEnable()
      {
          GameManager.OnGameStart += StartGame;
      }
  3. Start():

    • 호출 시점: 스크립트가 활성화된 후 한 번 호출됩니다.
    • 일반적인 사용 사례:
      • 초기 설정 작업.
      • 게임 시작 준비.
    • 예시:
      private void Start()
      {
          initialPosition = transform.position;
      }
  4. Update():

    • 호출 시점: 매 프레임마다 호출됩니다 (60FPS 기준).
    • 일반적인 사용 사례:
      • 게임 로직 업데이트.
      • 입력 처리.
      • 오브젝트의 위치 및 상태 업데이트.
    • 예시:
      private void Update()
      {
          if (Input.GetKeyDown(KeyCode.Space))
          {
              Jump();
          }
      }
  5. FixedUpdate():

    • 호출 시점: 물리 엔진 업데이트 주기에 따라 호출됩니다.
    • 일반적인 사용 사례:
      • 물리 연산 (예: 힘 적용, 충돌 감지).
    • 예시:
      private void FixedUpdate()
      {
          rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
      }
  6. LateUpdate():

    • 호출 시점: 모든 Update() 메서드가 호출된 후 한 번 호출됩니다.
    • 일반적인 사용 사례:
      • 카메라 추적.
      • 다른 오브젝트와의 상호작용.
    • 예시:
      private void LateUpdate()
      {
          transform.position = playerTransform.position + offset;
      }
  7. OnDisable():

    • 호출 시점: 스크립트가 비활성화될 때 호출됩니다.
    • 일반적인 사용 사례:
      • 이벤트 구독 해제.
      • 정리 작업.
    • 예시:
      private void OnDisable()
      {
          GameManager.OnGameStart -= StartGame;
      }
  8. OnDestroy():

    • 호출 시점: 스크립트가 파괴될 때 호출됩니다.
    • 일반적인 사용 사례:
      • 리소스 정리.
      • 이벤트 구독 해제.
      • 로그아웃
    • 예시:
      private void OnDestroy()
      {
          SaveGameData();
      }

각 콜백 메서드는 특정한 시기와 목적에 따라 사용되며, Unity에서 스크립트와 게임 오브젝트의 동작을 정확하게 제어하고 조절하는데 중요한 역할을 합니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글