240226-TIL
2024. 2. 26. 21:15ㆍ내일배움캠프
2월 26일
오늘 TIL에 정리할껀 바로
RuntimeInitializeOnLoadMethodAttribute
더보기
동적 생성에 대해 공부하던중에 팀원의 가르침 속에서 배운 내용이다
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)]
static void OnBeforeSplashScreen()
{
Debug.Log("Before SplashScreen is shown and before the first scene is loaded.");
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
static void OnBeforeSceneLoad()
{
Debug.Log("First scene loading: Before Awake is called.");
}
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
static void OnAfterSceneLoad()
{
Debug.Log("First scene loaded: After Awake is called.");
}
[RuntimeInitializeOnLoadMethod]
static void OnRuntimeInitialized()
{
Debug.Log("Runtime initialized: First scene loaded: After Awake is called.");
}
RuntimeInitializeOnLoadMethodAttribute 는 런타임이 시작되고 첫 번째 장면을 로드할 때 사용하는 어트리뷰트다.
RuntimeInitializeOnLoadMethod 는 RuntimeInitializeLoadType으로 타입을 설정해서 사용하는데
RuntimeInitializeLoadType을 설정하지 않앗다면 Awake() 가 호출된 후 호출된다.
주의할점은 여러 클래스에 어트리뷰트를 정의했다면 각각의 실행순서는 보장되지 않는다는 점에 유의하자
RuntimeInitializeLoadType에는 5가지 타입이 있다.
순서대로의 설명을 보자면
초기화 단계의 SubSystem
- Unity Engine의 특정부분을 담당하는 추상화 및 모듈화된 기능 sets
- Unity Engine에 포함되는 Unity Editor의 built-in패키지(e.g. Rendering, Physics, Input, Audio, UI, Scripting, etc)
- SubsystemRegistration단계에서 Unity는 `ISubsystemDescriptor`를 구현하는 클래스를 검색해서 서브시스템으로 등록
- - 이후 등록된 서브시스템들을 Application에서 사용
초기화 단계의 Assemblie
- Unity 프로젝트에 포함된 managed assemblies
- 런타임에 동적으로 로드되는 추가 assemblies (e.g. reflection, dynamic code generation, etc)
동적 생성에 관해 계속 공부중이다.
아직 정확한 이해를 가지고 TIL을 작성하는게 아니라서 추가적인 학습이 더 필요한 상태이다.
팀원에게 여러가지 물어보고 정보를 찾아보고 열심히 공부해야겠다.
2월 26일 TIL은 여기서 마치도록 하겠다.
'내일배움캠프' 카테고리의 다른 글
240228-TIL (0) | 2024.02.28 |
---|---|
240227-TIL (0) | 2024.02.27 |
240223-TIL (0) | 2024.02.23 |
240221-TIL (0) | 2024.02.21 |
240220-TIL (0) | 2024.02.20 |