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