{!See https://docs.google.com/document/d/1takg_GmIBBKKTj-GHZCwzxohpQz7Bhekivkk72kYMtE/edit for reference implementation of OneTrust, dataLayer and GTM} {!OneTrust Cookies Consent} {!OneTrust Cookies Consent end} {!dataLayer initialization push} {!dataLayer initialization push end} {!Google Tag Manager} {!Google Tag Manager end} 씬 로드 | Addressables | 1.21.17
docs.unity3d.com
"{0}"의 검색 결과

    목차 표시/숨기기

    씬 로드

    Addressables.LoadSceneAsync 메서드를 사용하면 주소 또는 기타 어드레서블 키 오브젝트로 어드레서블 씬 에셋을 로드할 수 있습니다.

    Addressables.LoadSceneAsync는 내부적으로 Unity 엔진 SceneManager.LoadSceneAsync 메서드를 사용합니다. SceneManager.LoadSceneAsync의 동작에 영향을 미치는 API는 Addressables.LoadSceneAsync에도 동일한 방식으로 영향을 미칩니다(예: Application.backgroundLoadingPriority).

    Addressables.LoadSceneAsync 메서드의 나머지 파라미터는 SceneManager.LoadSceneAsync 메서드와 함께 사용되는 파라미터에 해당합니다.

    • loadMode: 로드된 씬을 현재 씬에 추가할지, 아니면 현재 씬을 언로드 및 교체할지 여부입니다.
    • loadSceneParameters: loadMode 및 localPhysicsMode를 포함합니다. 씬을 로드할 때 2D 또는 3D 물리 씬을 생성할지 여부를 지정하는 데 사용됩니다.
    • activateOnLoad: 로드가 완료되는 즉시 씬을 활성화할지, 아니면 SceneInstance 오브젝트의 ActivateAsync 메서드를 호출할 때까지 기다릴지 여부입니다. AsyncOperation.allowSceneActivation 옵션에 해당합니다. 기본값은 true입니다.
    • priority: 씬을 로드하는 데 사용되는 AsyncOperation의 우선순위입니다. AsyncOperation.priority 옵션에 해당합니다. 기본값은 100입니다.

    [!경고] activateOnLoad 파라미터를 false로 설정하면 씬을 활성화할 때까지 다른 어드레서블 에셋의 로딩을 포함한 AsyncOperation 대기열이 차단됩니다. 씬을 활성화하려면 LoadSceneAsync에 의해 반환된 SceneInstance의 ActivateAsync 메서드를 호출합니다. 자세한 내용은 AsyncOperation.allowSceneActivation을 참조하십시오.

    다음 예제에서는 씬을 가산적으로 로드합니다. 씬을 로드하는 컴포넌트는 작업 핸들을 저장하고 부모 게임 오브젝트가 파괴될 때 이를 사용하여 씬을 언로드 및 해제합니다.

    
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    using UnityEngine.ResourceManagement.AsyncOperations;
    using UnityEngine.ResourceManagement.ResourceProviders;
    using UnityEngine.SceneManagement;
    
    internal class LoadSceneByAddress : MonoBehaviour
    {
        public string key; // address string
        private AsyncOperationHandle<SceneInstance> loadHandle;
    
        void Start()
        {
            loadHandle = Addressables.LoadSceneAsync(key, LoadSceneMode.Additive);
        }
    
        void OnDestroy()
        {
            Addressables.UnloadSceneAsync(loadHandle);
        }
    }
    
    

    추가 예제는 Addressables-Sample 저장소의 Scene Loading 프로젝트를 참조하십시오.

    LoadSceneMode.Single을 사용하여 씬을 로드하면, Unity 런타임은 현재 씬을 언로드하고 Resources.UnloadUnusedAssets를 호출합니다. 자세한 내용은 어드레서블 에셋 해제를 참조하십시오.

    [!참고] 에디터에서는 현재 프로젝트에서 언제든지 씬을 로드할 수 있습니다. 씬이 사용 불가능한 원격 번들에 패키징되어 있고 Play Mode Script를 Use Existing Build 로 설정한 경우에도 마찬가지입니다. 에디터는 에셋 데이터베이스를 사용하여 씬을 로드합니다.

    씬에서 어드레서블 사용

    씬이 어드레서블인 경우 다른 에셋과 마찬가지로 씬에서 어드레서블 에셋을 사용할 수 있습니다. 씬에 프리팹 및 기타 에셋을 배치하고 컴포넌트 프로퍼티에 에셋을 할당할 수 있습니다. 어드레서블이 아닌 에셋을 사용하면 해당 에셋은 씬의 암시적 종속 관계가 되며, 빌드 시스템은 콘텐츠 빌드 시 씬과 동일한 에셋 번들에 해당 에셋을 패킹합니다. 어드레서블 에셋은 해당 에셋이 속한 그룹에 따라 자체 에셋 번들에 패킹됩니다.

    [!참고] 두 곳 이상에서 사용되는 암시적 종속성은 여러 에셋 번들과 빌트인 씬 데이터에서 중복될 수 있습니다. 빌드 레이아웃 보고서를 사용하여 프로젝트 콘텐츠 구성으로 인해 원치 않게 발생하는 에셋 중복을 식별하고 해결하십시오.

    씬이 어드레서블이 아닌 경우 씬 계층 구조에 직접 추가한 어드레서블 에셋은 암시적 종속성이 되며, 해당 에셋이 어드레서블 그룹에도 존재하더라도 Unity는 빌트인 씬 데이터에 해당 에셋의 사본을 포함합니다. 씬의 게임 오브젝트에서 컴포넌트에 할당된 머티리얼과 같은 에셋도 마찬가지입니다.

    커스텀 컴포넌트 클래스에서는 AssetReference 필드를 사용하여 어드레서블 에셋이 비 어드레서블 씬에 할당되도록 허용할 수 있습니다. 그렇지 않으면 주소 및 레이블을 사용하여 런타임에 스크립트에서 에셋을 로드할 수 있습니다. 씬이 어드레서블인지 여부에 관계 없이 코드에 AssetReference를 로드해야 합니다.

    문서 개요
    맨 위로
    Copyright © 2023 Unity Technologies — 상표 및 이용약관
    • 법률정보
    • 개인정보처리방침
    • 쿠키
    • 내 개인정보 판매 금지
    • Your Privacy Choices (Cookie Settings)