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

    목차 표시/숨기기

    에셋 레퍼런스 필드 생성

    AssetReference 또는 서브 클래스 중 하나를 MonoBehaviour 또는 ScriptableObject에 추가하려면 클래스에서 직렬화 가능한 필드로 선언해야 합니다.

    
    using System;
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    
    internal class DeclaringReferences : MonoBehaviour
    {
        // Any asset type
        public AssetReference reference;
    
        // Prefab assets
        public AssetReferenceGameObject gameObjectReference;
    
        // Sprite asset types
        public AssetReferenceSprite spriteReference;
        public AssetReferenceAtlasedSprite atlasSpriteReference;
    
        // Texture asset types
        public AssetReferenceTexture textureReference;
        public AssetReferenceTexture2D texture2DReference;
        public AssetReferenceTexture3D texture3DReference;
    
        // Any asset type with the specified labels
        [AssetReferenceUILabelRestriction("animals", "characters")]
        public AssetReference labelRestrictedReference;
    
        // Generic asset type (Unity 2020.3+)
        public AssetReferenceT<AudioClip> typedReference;
    
        // Custom asset reference class
        public AssetReferenceMaterial materialReference;
    
        [Serializable]
        public class AssetReferenceMaterial : AssetReferenceT<Material>
        {
            public AssetReferenceMaterial(string guid) : base(guid)
            {
            }
        }
    
        private void Start()
        {
            // Load assets...
        }
    
        private void OnDestroy()
        {
            // Release assets...
        }
    }
    
    

    [!참고] Unity 2020.1 이전 버전의 경우 인스펙터 창에 기본적으로 일반 필드가 표시되지 않았습니다. 이전 버전의 Unity에서는 AssetReferenceT의 일반이 아닌 자체 서브 클래스를 만들어야 합니다. 자세한 내용은 구체적인 서브 클래스 생성을 참조하십시오.

    에셋 레퍼런스 로드 및 해제

    AssetReference 클래스는 참조된 에셋을 로드, 인스턴스화 및 해제할 수 있는 방법을 제공합니다. 또한 에셋을 로드하는 Addressables 클래스 메서드의 키로 AssetReference 인스턴스를 사용할 수도 있습니다.

    다음 예시에서는 현재 게임 오브젝트의 자식으로 AssetReference를 인스턴스화하고 부모가 제거되면 이를 해제합니다.

    
    using UnityEngine;
    using UnityEngine.AddressableAssets;
    
    internal class InstantiateReference : MonoBehaviour
    {
        [SerializeField]
        private AssetReferenceGameObject reference;
    
        void Start()
        {
            if (reference != null)
                reference.InstantiateAsync(this.transform);
        }
    
        private void OnDestroy()
        {
            if (reference != null && reference.IsValid())
                reference.ReleaseAsset();
        }
    }
    
    

    AssetReference를 사용하여 에셋을 로드하는 예시 및 자세한 내용은 AssetReference 로드를 참조하십시오.

    레이블과 에셋 레퍼런스 사용

    AssetReferenceUILabelRestriction 속성을 사용하면 AssetReference 필드에 할당할 수 있는 에셋을 특정 레이블이 있는 에셋으로 제한할 수 있습니다. 이 속성 레퍼런스와 AssetReference 서브 클래스를 사용하여 유형과 레이블을 기준으로 할당을 제한할 수 있습니다.

    다음 예시에서는 animals라는 레이블이나 characters라는 레이블이 없는 레퍼런스에 어드레서블 에셋을 할당하지 못하게 합니다.

    
    [AssetReferenceUILabelRestriction("animals", "characters")]
    public AssetReference labelRestrictedReference;
    
    

    이 속성은 Unity 에디터에서 인스펙터를 사용하여 특정 레이블 없이 에셋을 할당하는 것을 방지하기만 합니다. 스크립트를 사용하여 레이블이 없는 에셋을 필드에 할당할 수는 있습니다.

    AssetReferenceUILabelRestriction 속성이 있는 필드에는 비 어드레서블 에셋을 드래그할 수 없습니다.

    구체적인 서브 클래스 생성

    Unity 2020.1 이전 버전이나 CustomPropertyDrawer 속성을 사용하는 등 일반적인 형태의 AssetReference 클래스를 직접 사용할 수 없는 경우 구체적인 서브 클래스를 생성할 수 있습니다.

    구체적인 서브 클래스를 생성하려면 AssetReferenceT 클래스를 상속하고 에셋 유형을 지정합니다. 또한 기본 클래스 생성자에 GUID 문자열을 전달해야 합니다.

    
    [Serializable]
    internal class AssetReferenceMaterial : AssetReferenceT<Material>
    {
        public AssetReferenceMaterial(string guid) : base(guid)
        {
        }
    }
    
    

    다른 스크립트에서 커스텀 AssetReference 서브 클래스를 다른 AssetReference 유형과 동일한 방식으로 사용할 수 있습니다.

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