• 티스토리 홈
  • 프로필사진
    개양반
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
개양반
  • 프로필사진
    개양반
    • 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
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 유니티 에셋 추천 - BG Database 커스텀 로더 #3
        2022년 12월 05일
        • 개양반
        • 작성자
        • 2022.12.05.오후09:48

        지난 시간에는 Resources 폴더에 로더 위치를 설정했다. 하지만, Resources 폴더는 여러가지 단점으로 인해 프로토타입에서만 사용하는 권장하는 폴더이다. 그래서 이번엔 원하는 폴더에 로더 위치를 설정하는 커스텀 로더에 대해 다뤄본다.

        리소스폴더를 사용하더라도 리소스폴더의 단점과 BGDatabase가 내부적으로 어떻게 동작을 하는지 명확히 알고 있고 그래서 리소스폴더에서 사용해도 괜찮다는 판단이 내려졌다면 Resources폴더에 로더를 위치해도 된다. 본인이 명확하게 알고 있다면 말이다.

         

        1. 로더 종류와 특징

          Resources StreamingAssets Custom
        파일
        위치
        Resources 폴더 Assets/StreamingAssets 폴더 아래 프로젝트의 모든 위치
        장점 추가 노력 없이 어디서나 작동 게임을 다시 빌드하지 않고 데이터베이스 파일을 업데이트할 수 있습니다. 1. 데이터베이스 파일은 프로젝트 아래 어디에나 놓을 수 있습니다.

        2. 런타임 시 모든 위치에서 데이터베이스 콘텐츠를 로드할 수 있습니다.
        단점 리소스 폴더에 많은 에셋을 저장하면(Unity는 권장하지 않음) 데이터베이스 로딩 속도가 느려질 수 있습니다. WEBGL 플랫폼에는 Custom 로더가 필요하다. (즉, WEBGL 에서는 못 쓴다)

        1. 데이터베이스 콘텐츠를 로드하는 코드를 구현해야 합니다.

        2. 액세스하기 전에 BGRepo.SetDefaultRepoContent 메서드를 사용하여 데이터베이스 콘텐츠를 로드하고 할당해야 합니다.

        3. 현지화 애드온에서 지원하지 않음
        활성화
        방법
        파일 bansheegz_database.bytes는 리소스 폴더 중 하나에 위치해야 합니다. 파일 bansheegz_database.bytes는 Assets/StreamingAssets 폴더 아래에 있어야 합니다.  

         

         

        2. 커스텀 로더 만들기

        2-1 로더로 만들 폴더 생성

        Assets 폴더에 TEST_Loader 폴더를 생성한다.

        bansheegz_database.bytes 파일을 TEST_Loader폴더로 이동시킨다.

         

        2-2 Mata 파일 수정

        bansheegz_database.bytes.meta 파일을 열고 guid 값을 3637ea689da0cff4b8d5c0fb5d609c15로 변경한다. bansheegz_database.bytes가 아닌 bansheegz_database.bytes.meta 파일이다. 

        meta 파일은 유니티에서 안 보인다.

         

        2-3 Reload

        유니티를 재실행한다. Unity를 열고 BGDatabase 창에서 Reload 버튼을 클릭한다.

         

        Settings - Main - Database file에서 path가 TEST_Loader 위치인지 확인한다.

         

         

        3. Custom Loader에서 데이터 불러오기

        Custom Loader에서 데이터베이스에 접근하려면 아래의 코드로 수동으로 콘텐츠를 로드해야 한다.

        * Resources 로더는 아래의 작업이 필요없다.

            byte[] content = someContent; //todo load content
            BGRepo.SetDefaultRepoContent(content);
            BGRepo.Load();

        그래서 이번에는 콘텐츠를 Addresable로 받은 뒤에 로드하는 방법에 대해 다뤄보겠다.

         

        3-1 Addresable 패키지 설치

        Package Manager에서 Addressable를 설치한다. Addressable에 대한 자세한 설명은 아래 링크를 참고한다.

        [Unity 자습서/Addressable] - 유니티 Addressable #1 - 기본편

         

        3-2 bansheegz_database를 Addressable로 등록하기

        Addressable Groups창에서 Create Addressable Settings 버튼을 눌러 AddressableAssetData를 생성한다. (잘 모르겠으면 위에 링크 클릭한다.) TEST_Loader 폴더에 있는 bansheegz_database을 Addressable로 등록한다. 

         

        3-3 스크립트 작성

        Asset 폴더에 BGTest.cs 파일을 만들고 아래의 코드를 작성한다.

        using UnityEngine;
        using BansheeGz.BGDatabase;
        using UnityEngine.AddressableAssets;
        
        
        namespace BG_DatabaseSample
        {
            public class BGTest : MonoBehaviour
            {
        
                private void Start()
                {
                    TEST();
                }
        
                private void TEST()
                {
                    // Addresable 에서 Data를 받아온 뒤 Byte[] 변수에 할당한다.
                    var databaseData 
                    = Addressables
                    	.LoadAssetAsync<TextAsset>(BGLoaderForRepoCustom.CustomDatabaseGuid).WaitForCompletion().bytes;
        
                    // 수동으로 콘텐츠를 로드한다.
                    BGRepo.SetDefaultRepoContent(databaseData);
                    BGRepo.Load();
                    
                    
                    // Database에 접근 한뒤 데이터를 불러와서 쓰는 코드이다.
                    // 여기서부터는 Resourcs 로더와 같다.
                    // 상세한 설명은 다음 시간에!!
                    BGMetaEntity table = BGRepo.I["TEST_Field"];
                    BGEntity entity = table.GetEntity(0);
        
                    float entityValue = entity.Get<float>("Damege");
                    Debug.Log(entityValue);
                }
            }
        }

         

        위 스크립트를 Hirarchy뷰의 아무 GameObject에 넣어서 테스트한다. 값이 제대로 불러오는걸 확인할 수 있다. 다음 시간에는 BG Database를 암호화하는 것에 대해 다뤄보겠다. 한번에 다 올리면 저품질 걸릴까봐.. 나눠서 올려야 할 듯 싶다.

         

        4. 구매 링크

        아래의 링크로 구매하시면 유니티 에필리에이트로 활동하는 저에게 소정의 원고료가 지급되어 큰 힘이 됩니다.

         

        저작자표시 비영리 변경금지 (새창열림)

        'Unity Assets 추천 > BG Database' 카테고리의 다른 글

        유니티 에셋 추천 - BG Database Addressable 사용 #5  (0) 2022.12.06
        유니티 에셋 추천 - BG Database 암호화 #4  (2) 2022.12.06
        유니티 에셋 추천 - BG Database 설정 #2  (8) 2022.12.05
        유니티 에셋 추천 - BG Database 소개 #1  (0) 2022.12.05
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
        게임 제작, 리뷰 등유니티로 게임 제작 게임/제품 리뷰 등을 합니다
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • 1. 로더 종류와 특징
      • 2. 커스텀 로더 만들기
      • 2-1 로더로 만들 폴더 생성
      • 2-2 Mata 파일 수정
      • 2-3 Reload
      • 3. Custom Loader에서 데이터 불러오기
      • 3-1 Addresable 패키지 설치
      • 3-2 bansheegz_database를 Addressable로 등록하기
      • 3-3 스크립트 작성
      • 4. 구매 링크
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      개인정보

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

      단축키

      내 블로그

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

      블로그 게시글

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

      모든 영역

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

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