• 티스토리 홈
  • 프로필사진
    개양반
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
개양반
  • 프로필사진
    개양반
    • Everybody Happyvirus (87)
      • Unity DOTS (19)
        • ECS Sample Projtect (8)
        • Unity.Physics (1)
        • TIP (9)
      • Unity Assets 추천 (6)
        • BG Database (5)
        • I2 Localization - 현지화 (1)
      • Unity 자습서 (15)
        • Addressable (4)
        • 유니티 + 파이어베이스 (0)
        • GamingServices (10)
      • 주식 이야기 (4)
        • 회사 소개 (2)
        • 회사 정보 (1)
        • 실적 발표 (0)
      • 일상 생활 (9)
        • 도서리뷰 (2)
        • 제품리뷰 (6)
      • 게임일기 (2)
        • 리그오브레전드 (2)
      • 게임소개 (4)
      • 게임리뷰 (7)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 유니티 Addressable #2 - 스프라이트
        2020년 09월 06일
        • 개양반
        • 작성자
        • 2020.09.06.오후09:40

        가. 준비물 가져오기

        1. Sprite 2장 가져오기

        이번에 사용할 이미지를 두장을 유니티로 가져옵니다. 이미지를 Sprite로 만들고 Inspector창에서 Addressable을 활성화시킨 다음 옆의 빈칸에 원하는 이름을 작성합니다. 해당 이름은 Addressable의 주소로 사용됩니다.


        나. 스크립트 작성

        1. AddressableSpriteLoader.cs 생성 후 작성

        using System;
        using System.Collections;
        using System.Collections.Generic;
        using UnityEngine;
        using UnityEngine.AddressableAssets;
        using UnityEngine.ResourceManagement.AsyncOperations;
        
        
        public class AddressableSpriteLoader : MonoBehaviour
        {
            private SpriteRenderer spriteRenderer;
        
            // AssetReference를 사용할 것인지 아니면 String으로 로드할 것인지 여부
            public bool isUseAddress;
        
            // 스프라이트 테스트 변수
            public AssetReferenceSprite newSprite;
            public string newSpriteAddress;
            void Start()
            {
                spriteRenderer = GetComponent<SpriteRenderer>();
        
                spriteRenderer.sprite = null;
        
                // isUseAddress가 true이면 string 값을 키값으로 사용해서 에셋을 로드합니다.
                if (isUseAddress == true)
                {
                    Addressables.LoadAssetAsync<Sprite>(newSpriteAddress).Completed += SpriteLoaded;
                }
        
                // isUseAddress가 false이면 AssetReferenceSprite에 참조된 에셋을 로드합니다.
                else
                {
                    newSprite.LoadAssetAsync().Completed += SpriteLoaded;
                }
            }
        
        
            private void SpriteLoaded(AsyncOperationHandle<Sprite> obj)
            {
                 switch(obj.Status)
                {
                    case AsyncOperationStatus.Succeeded:
                        spriteRenderer.sprite = obj.Result;
                        break;
        
                    case AsyncOperationStatus.Failed:
                        Debug.Log("스프라이트 로드 실패");
                        break;
        
                    default:
                        break;
                }
            }
        }

        #주요 코드

        • AssetReferenceSprite : Addressable 에 등록된 Asset 중에 Sprite만 참조할 수 있는 변수 타입입니다.
        • Addressables.LoadAssetAsync<Sprite>(newSpriteAddress) : String으로 키 값을 검색할때 사용
        • newSprite.LoadAssetAsync() : AssetReferenceSprite에 참조된 애셋으로 불러올때 사용
        • AsyncOperationHandle : 로드  상태, 결과 등을 관리한다.

        다. 컴포넌트 연결

        1. Loader 오브젝트

        저번 강좌에서 만들었던 Loader 오브젝트에 AssetReferenceUtility 컴포넌트를 삭제하고 위에서 만든 AddressableSpriteLoader를 연결합니다. 아래와 같이 설정합니다.


        라. 테스트하기

        IsUseAddress 활성화/비활성화해서 테스트를 두번 진행합니다. 활성 여부에 따라 다른 이미지가 출력되는지 확인합니다.

        저작자표시 (새창열림)

        'Unity 자습서 > Addressable' 카테고리의 다른 글

        유니티 Addressable #4 - 씬 로드와 게임오브젝트 Instantiate  (2) 2020.09.10
        유니티 Addressable #3 - 원하는 타입의 레퍼런스 만들 기  (0) 2020.09.07
        유니티 Addressable #1 - 기본편  (0) 2020.09.05
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • 가. 준비물 가져오기
      • 1. Sprite 2장 가져오기
      • 나. 스크립트 작성
      • 1. AddressableSpriteLoader.cs 생성 후 작성
      • 다. 컴포넌트 연결
      • 1. Loader 오브젝트
      • 라. 테스트하기
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      개인정보

      • 티스토리 홈
      • 포럼
      • 로그인

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.