이론

[unity]라이프 사이클

qltjfeo55555 2025. 2. 4. 11:50

unity 라이프 사이클
게임오브젝트 생성부터 삭제까지의 흐름을 제어하는 일종의 순서도
크게[초기화] -> [게임 루프] -> [종료] 의 단계를 거침

1. Awake
객체가 만들어 질 때 한번 호출
다른 스크립트에서 이 객체 참조하기 전에 실행되어야 함
가정먼저 !!!!!!!!!! 실행되므로 데이터 초기화 적합
스크립트가 비활성화 되어 있어도 호출됨
※다른 오브젝트와 상호작용 코드 여기 있으면 안됌**

2. OnEnable
게임 오브젝트 활성화 될 때 실행
SetActive(true) 호출 되면 이게 매번 다시 실행
주로 이벤트 리스너 등록을 여기서 함
※만약 위에꺼 했다면 OnDisable이벤트 등록 해지 코드 꼭 작성해야댐

3. Start
Awake들 전부 싹 다 수행하고, 첫번째 업데이트 전에 한번 실행됌
다른 오브젝트와의 관계 설정을 여기서 하면 적합

4. Update
매 프레임마다 호출되는 메서드
사용자 입력 처리 등등 사용
※무거운 연산 피하기

5. FixedUpdate
물리 계산이 필요할 때 유용함
※주의 : 고정 간격으로 호출 되므로 키입력 코드 넣으면 무시당할수 있음

6. LateUpdate
Update들 싹다 수행한 후에
카메라 이동같은 것들에 적합.펫 따라가기 등등

7. OnDisable
게임오브젝트가 비활성화 될 때마다 호출
SetActive(false) 이런거 수행 들어오면 호출됌
여기에 주로 들어가는 것 : 이벤트 리스너 해제!!!!!!!!!!!!
※게임 강제 종료되면 무시 당할수 있음
세이브 안한거 강제 종료시 날아감

8. OnDestroy
게임오브젝트가 삭제될때 한번 실행됌
씬이 바뀌거나 Destroy(gameobject)등에 파괴되면 호출
※애도 마찬가지..게임 강제종료되면 여기있는 코드 무시당할수 있음

//저장같은 코드 어디에 쓸까?
private void OnApplicationQuit()
{
    //이런거
}

'이론' 카테고리의 다른 글

[unity]Invoke,InvokeRepeating 시간 지연, CancelInvoke 해제  (0) 2025.02.03
Visual Studio, 코드에 1나누기0 넣으면?  (0) 2024.11.25
IDE란?  (0) 2024.11.22
폰노이만 구조  (0) 2024.11.22
칸반?  (1) 2024.11.21