Unity/Tips

Unity RuntimeInitializeOnLoadMethod을 이용한 초기 세팅

최애뎡 2022. 7. 26. 23:03
728x90
반응형

https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html

 

Unity - Scripting API: RuntimeInitializeOnLoadMethodAttribute

RuntimeInitializeOnLoadMethodAttribute class in UnityEngine / Inherits from:Scripting.PreserveAttribute / Implemented in:UnityEngine.CoreModule Description Allow a runtime class method to be initialized when a game is loaded at runtime without action from

docs.unity3d.com

// _go_console never used warning
#pragma warning disable 0414

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class RuntimeInitialize : MonoBehaviour
{
    [SerializeField] GameObject _go_console = null;

    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    static void FirstLoad()
    {
#if UNITY_EDITOR
        if (SceneManager.GetActiveScene().name.CompareTo("Login") != 0)
            SceneManager.LoadScene("Login");
#endif
    }

    private void Awake()
    {
#if DEVELOPMENT_BUILD
        this._go_console.SetActive(true);
#endif
    }
}

먼저

RuntimeInitializeLoadType은 본인 코드의 BeforeSceneLoad만 있는 게 아님

본인의 경우 어느 씬에서 Play를 해도 Login씬 부터 시작하도록 하기 위해 사용

+

RuntimeInitializeOnLoadMethod의 경우 꼭 오브젝트에 스크립트를 물릴 필요 없이 Assets안에 존재하면 알아서 들어오긴 하는데 본인의 경우 위 Awake문처럼 빌드 환경을 나누는 등의 초기 세팅을 위해 본인의 Manager 오브젝트에 같이 물려 사용 중

반응형