{!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}"의 검색 결과

    목차 표시/숨기기

    비동기 로드

    어드레서블 시스템 API는 비동기이며, 작업 진행 및 완료 현황을 관리하는 데 사용할 수 있는 AsyncOperationHandle을 반환합니다.

    어드레서블은 콘텐츠 위치에 구애받지 않도록 설계되었습니다. 콘텐츠를 먼저 다운로드하거나 시간이 오래 걸릴 수 있는 다른 방법을 사용해야 할 수 있습니다. 동기 실행을 적용하려면 동기식 어드레서블에서 자세한 내용을 참조하십시오.

    에셋을 처음 로드할 때는 최소 한 프레임이 지난 후에 처리가 완료됩니다. 콘텐츠가 이미 로드된 경우 실행 시간은 아래 표시된 다양한 비동기 로드 옵션마다 다를 수 있습니다. 다음과 같이 로드가 완료될 때까지 기다릴 수 있습니다.

    • 코루틴: 실행을 계속하기 전에 항상 최소 한 프레임만큼 지연시킵니다.
    • Completed 콜백: 콘텐츠가 아직 로드되지 않은 경우 최소 한 프레임, 그렇지 않은 경우 같은 프레임에서 콜백이 호출됩니다.
    • AsyncOperationHandle.Task 대기: 콘텐츠가 아직 로드되지 않은 경우 최소 한 프레임, 그렇지 않은 경우 같은 프레임에서 실행이 계속됩니다.
    
    using System.Collections;
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    using UnityEngine.ResourceManagement.AsyncOperations;
    
    internal class AsynchronousLoading : MonoBehaviour
    {
        private string address = "tree";
        private AsyncOperationHandle loadHandle;
    
        // always minimum of 1 frame
        IEnumerator LoadAssetCoroutine()
        {
            loadHandle = Addressables.LoadAssetAsync<GameObject>(address);
            yield return loadHandle;
        }
    
        // minimum of 1 frame for new asset loads
        // callback called in current frame for already loaded assets
        void LoadAssetCallback()
        {
            loadHandle = Addressables.LoadAssetAsync<GameObject>(address);
            loadHandle.Completed += h =>
            {
                // Loaded here
            };
        }
    
        // minimum of 1 frame for new asset loads
        // await completes in current frame for already loaded assets
        async void LoadAssetWait()
        {
            loadHandle = Addressables.LoadAssetAsync<GameObject>(address);
            await loadHandle.Task;
        }
    
        private void OnDestroy()
        {
            Addressables.Release(loadHandle);
        }
    }
    
    
    문서 개요
    맨 위로
    Copyright © 2023 Unity Technologies — 상표 및 이용약관
    • 법률정보
    • 개인정보처리방침
    • 쿠키
    • 내 개인정보 판매 금지
    • Your Privacy Choices (Cookie Settings)