1. 순서
Awake -> OnEnable -> Start -> Update -> OnDisable -> OnDestroy
*OnEnable - 활성화 되있을 때마다 호출
*OnDisable - 비활성화 되있을 때마다 호출
2. GameObject 의 App 컴포넌트를 비활성화시
-Awake만 호출
-OnEnable부터 OnDestroy까지 호출되지 않는다.
3. GameObject 의 App 컴포넌트가 활성화시
-Awake부터 OnDestroy 호출
-Start와 Update는 App컴포넌트가 활성화 될 때만 호출된다(start는 한번, update는 매 프레임마다)
4. GameObject가 비활성화시
-App 컴포넌트 활성화 여부와 관계없이 Awake함수부터 호출되지 않는다.
5. 플레이를 멈출 경우(일시정지x)
- App컴포넌트의 OnDestroy함수 호출됨.(메모리에서 사라졌을때-인스턴스가 사라졌을때)
OnDestroy는 이전에 활성화 되어있던 게임 오브젝트 상에서만 호출
비활성화 된 게임오브젝트를 제거했을 경우 onDestroy 함수 호출 안 됨
게임오브젝트는 활성화, 컴포넌트 비활성화 -> 컴포넌트를 제거-->OnDestroy 호출됨
6. OnDestroy
Object.Destory
- 씬 종료
- 오브젝트 존재의 마지막 프레임에 대해 모든 프레임 업데이트를 마친 후 이 함수 호출
- 오브젝트 활성화, 컴포넌트 활성화 Awake 부터 ondestroy까지 모두 호출
- 오브젝트 활성화, 컴포넌트 비활성화 Awake => ondestroy
- 오브젝트 비활성화, 컴포넌트 비활성화 x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class App : MonoBehaviour
{
//인스턴스화 직후 한번만 실행 (App 컴포넌트가 비활성화 되면 Awake만 나타난다)
private void Awake()
{
//this.btn.onClick.AddListener(() =>
//{
// //처음부터 비활성화 된 Test게임 오브젝트를 제거
// //Object.Destroy(this.test.gameObject);
// //처음부터 활성화 된 Test게임 오브젝트의 비활성화된 test 컴포넌트 제거
// Object.Destroy(this.test);
//});
Debug.Log("App: Awake");
}
//활성화되면 호출
private void OnEnable()
{
Debug.Log("App: OnEnable");
}
//인스턴스가 활성화된 후 한번만 실행
// Start is called before the first frame update
void Start()
{
Debug.Log("App: Start");
}
//매 프레임마다
// Update is called once per frame
void Update()
{
Debug.Log("App: Update");
}
//비활성화될 때마다
private void OnDisable()
{
Debug.Log("App: OnDisable");
}
//젤 마지막에
private void OnDestroy()
{
Debug.Log("onDestory");
}
}
|
'C# > 수업내용' 카테고리의 다른 글
2020.05.12. 수업내용 - 생성된 캐릭터가 서로 달려와서 공격하기(상속) (0) | 2020.05.12 |
---|---|
2020.05.11 수업내용 - Scene 변환 (0) | 2020.05.11 |
2020.05.08. 수업내용 - 벡터(단위벡터) (0) | 2020.05.10 |
2020.05.07. 수업내용 - 지정된 위치에 몬스터와 캐릭터 생성시키기 (0) | 2020.05.08 |
2020.05.07. 수업내용 - Unity 버튼, 이동, 애니메이션 실행 (0) | 2020.05.08 |