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 오브젝트에 같이 물려 사용 중
반응형