이 포스팅에서 사용된 코드는 아래 블로거분의 코드를 참고하였습니다!
https://mentum.tistory.com/657
코드
[InitializeOnLoad]
public class EditorStartInit
{
static EditorStartInit()
{
var pathOfFirstScene = EditorBuildSettings.scenes[0].path;
var sceneAsset = AssetDatabase.LoadAssetAtPath<SceneAsset>(pathOfFirstScene);
EditorSceneManager.playModeStartScene = sceneAsset;
}
}
위 코드를 Editor 폴더 내 스크립트에 적어주기만 하면 된다!
꼭 꼭!! Editor 폴더 내에 존재해야함을 인지해야합니다!
이론
EditorBuildSettings.scenes[0].path
Build Settings 탭에 등록되어 있는 Scene의 배열[Index]를 넣어서 그 씬의 path를 가져옵니다!
path란?
그 에셋의 경로를 뜻합니다!
위 StartUp Scene같은 경우 Path는
[Assets] - [Scenes] - [StartUp.unity]가 되는 것입니다!
다음으로
AssetDatabase.LoadAssetAtPath<SceneAsset>(pathOfFirstScene);
- AssetDatabase는 프로젝트에 포함된 에셋에 접근하게 해주는 API입니다.
- SceneAsset은 에디터에서 씬 객체를 참조할 때 사용됩니다!
EditorSceneManager
에디터에서 작동하는 씬 매니저를 사용하여 playModeStartScene을 통해 위에서 불러온 씬 에셋을 실행시킵니다!
에디터씬매니저의 기능에 대해서는 아래 사이트를 참고하시면 좋을 것 같습니다!
[InitializeOnLoad]
컴파일 및 Play Mode 진입 시 실행되게 끔 하는 클래스 어트리뷰트 입니다!
한 번만 실행되며 반드시 Editor폴더 안 스크립트에서 작동해야 합니다!
자세한 어트리뷰트에 대해서는 아래 블로거가 잘 정리해두었으니 참고하면 좋을 것 같습니다!
https://rito15.github.io/posts/unity-editor-init-events/