반응형
유니티 Awake Start Updat 상속 해서 부모 함수까지 호출 하기
유니티에서 MonoBehaviour를 상속 해서
최종 자식의 Awake가 호출 될 때 부모의 Awake도 같이
호출 되게 할 일이 있는데
다음과 같이 하면 Child.Awake만 호출 되고
Parent.Awake는 호출 되지 않는다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Parent : MonoBehaviour
{
void Awake()
{
print("Awake : Parent");
}
}
public class Child : Parent
{
void Awake()
{
print("Awake : Child");
}
}
|
Child.Awake를 호출 할때 상속받은 Parent.Awake도
호출 되게 하려면
다음과 같이 virtual / override와 키워드를 사용 해서
가상함수로 만들어 사용 해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Parent : MonoBehaviour
{
protected virtual void Awake()
{
print("Awake : Parent");
}
}
public class Child : Parent
{
protected override void Awake()
{
base.Awake();
print("Awake : Child");
}
}
|
Parent의 Awake에 virtual를 사용 하여
자식에서 오버라이딩 해서 사용 할 수 있게 만든 다음
Child에서 Awake를 override 하여 정의 해주고
함수 내부에서 base.Awake를 호출 하여
Parent.Awake가 실행 되게 하면 된다.
여기서 base.는 상속받은 부모를 가르킨다.
반응형
'Unity3D' 카테고리의 다른 글
유니티 프로젝트를 소스트리(SourceTree)로 Git에 유니티 프로젝트 올리기 위해서 처음 해야 할 일. (1) | 2021.03.12 |
---|---|
인프런 C#과 유니티로 만드는 MMORPG 게임 개발 시리즈 정리 블로그 (0) | 2021.03.03 |
Unity의 Awake Start Update 호출 순서 (0) | 2021.02.09 |
Unity3D Rigidbody의 mass, drag, angular drag 의미 및 설정 (0) | 2020.12.07 |
게임 개발 관련 리소스 참고 사이트 모음. (0) | 2020.11.20 |