MMSceneLoading
요약: 이 페이지에서는 Feel에 포함된 헬퍼를 사용하여 프로젝트에서 씬을 로드하는 다양한 방법을 설명합니다.
테이블 내용 소개
|
소개
Unity는 게임에서 씬을 전환하는 기본적인 방법을 제공하지만, 이는 매우 흥미롭지 않으며 사용자 친화적이지도 않습니다. Feel에는 씬을 로드하고 언로드하는 몇 가지 헬퍼가 포함되어 있어 옵션을 확장하면서도 간단하게 사용하고 쉽게 커스터마이징할 수 있으며, 전체적으로 플레이어에게 더 나은 경험을 제공합니다.
먼저 중요한 경고 사항을 알려드리겠습니다. 쉽게 잊기 쉬운 부분인데, Unity에서 씬을 로드하려면 해당 씬이 빌드 설정에 있어야 합니다 (파일 > 빌드 설정). 빌드 설정에 익숙하지 않다면 먼저 이를 읽어보는 것이 좋습니다. 로딩 씬을 사용하는 경우, 그 씬 역시 빌드 설정에 추가되어야 합니다.
피드백을 사용하여 씬을 로드하는 방법
새로운 씬을 로드하는 가장 쉬운 방법은 피드백을 사용하는 것입니다. 이는 코드를 필요로 하지 않으며 몇 초 만에 설정할 수 있습니다. 다음은 Feel에 포함된 데모 로딩 화면 중 하나를 사용하여 씬을 추가적으로 로드하는 예제입니다:
피드백을 사용하여 씬을 추가적으로 로드하는 방법
|
보시다시피, 이 방법은 기본 Unity 방식보다 훨씬 간단하고 개선된 방법입니다. 피드백의 설정에서 몇 가지를 조정할 수 있으며, 먼저 로딩 모드를 선택할 수 있습니다. 사용 가능한 4가지 모드는 다음과 같습니다:
- Direct: 기본 SceneManager.LoadScene 호출을 수행합니다.
- Direct Additive: 기본 SceneManager.LoadScene 호출을 사용하지만 추가 모드로 실행됩니다.
- MM Scene Loading Manager: 이 모드는 MMSceneLoadingManager를 사용하여 순차적, 비추가적인 씬 로드를 트리거합니다(현재 씬 언로드, 로딩 화면 로드, 새 씬 로드, 로딩 화면 언로드).
- MM Additive Scene Loading Manager: 이 모드는 보다 고급인 MMAdditiveSceneLoadingManager를 사용합니다. 로딩 화면을 추가적으로 로드하며, 이전 씬을 언로드하지 않습니다(더 흥미로운 전환이 가능). 사용자 지정 지연 시간과 전환 곡선을 사용할 수 있습니다(다른 모드에서는 사용되지 않음).
마지막 모드에서는 전환을 위한 여러 지연 시간과 곡선을 조정할 수 있습니다. 이러한 설정은 MMFader(일반, 원형 또는 방향성 페이더)를 조정합니다. Feel에 포함된 다양한 데모 로딩 화면에서 이미 설정된 예제를 확인할 수 있습니다.
코드를 통해 씬을 로드하는 방법
코드를 통해 씬을 로드하는 것도 매우 간단합니다!
다음은 Unity에서 기본적으로 씬을 로드하는 방법입니다(빌드 설정에 TheNameOfMyDestinationScene이라는 씬이 있다고 가정):
SceneManager.LoadScene("TheNameOfMyDestinationScene");
다음은 MMSceneLoadingManager를 사용하여 씬을 로드하는 방법입니다 (LoadingScreen은 데모 로딩 화면 중 하나의 이름입니다. 이를 사용할 수 있습니다):
MMSceneLoadingManager.LoadScene("TheNameOfMyDestinationScene", "LoadingScreen");
마지막으로, 씬을 추가적으로 로드하는 방법은 다음과 같습니다(이 메서드는 더 많은 매개변수를 가지므로, IDE나 API 문서에서 자세히 확인해보세요):
MMAdditiveSceneLoadingManager.LoadScene("TheNameOfMyDestinationScene");
씬을 추가적으로 로드할 때, MMAdditiveSceneLoadingManagerSettings 클래스를 통해 다양한 설정을 지정할 수 있습니다. 전체 설정 목록을 확인하려면 해당 클래스를 참조하세요. 다음은 예제입니다:
MMAdditiveSceneLoadingManagerSettings mySettings = new MMAdditiveSceneLoadingManagerSettings();
mySettings.LoadingSceneName = "MyAdditiveLoadingSceneName";
MMAdditiveSceneLoadingManager.LoadScene("TheNameOfMyDestinationScene", mySettings);
자신만의 로딩 화면 만들기
자신만의 로딩 화면을 만들기 위해, 데모 중 하나를 시작점으로 사용하는 것이 가장 좋습니다. 먼저, MMAdditiveLoadingScreen 씬을 복제하여 MyAdditiveLoadingScreen으로 이름을 변경하고, 프로젝트 내의 Feel 폴더 외부에 위치한 적절한 장소로 이동한 후, 빌드 설정에 추가하고 엽니다.
보시다시피, 이 씬은 진행 상황을 숫자로 표시하는 텍스트와 프로그레스 바로 구성된 매우 간단한 씬입니다. 이러한 UI 요소들을 원하는 대로 편집할 수 있습니다. 예를 들어, 계층 구조에서 FaderExtension 오브젝트를 선택하고 색상을 변경할 수 있습니다. 데모 로고를 제거하고 자신만의 로고를 추가할 수도 있습니다.
또한 이 씬에는 LoadingSceneManager라는 오브젝트가 포함되어 있습니다. 인스펙터에서 이 오브젝트에는 다양한 UnityEvents가 있으며, 이를 통해 거의 모든 측면을 제어할 수 있습니다. 기본적으로 대부분은 비어 있으며, 텍스트 버전의 진행 상황과 프로그레스 바를 업데이트하는 바인딩만 설정되어 있습니다. 더 많은 기능을 추가해도 좋습니다!
편집이 완료되면 씬을 저장하고, 이제 코드나 피드백을 통해 새로운 씬을 추가적으로 로드할 때 기본 씬 이름 대신 새로 만든 씬 이름을 지정하면 해당 씬이 사용됩니다. Feel/MMTools/Tools/MMSceneLoading/LoadingScreens/ 폴더에서 여러 데모 로딩 씬을 찾을 수 있습니다. 대부분은 추가적으로 사용되며, LoadingScreen 씬은 비추가적인 MMSceneLoadingManager를 사용할 때 사용됩니다. 이 둘을 혼용하지 않도록 주의하세요!
이제 씬을 멋지게 로드하는 방법을 모두 알게 되었습니다. 잘하셨습니다!