Beatchoi's Blog

List of Postings

유니티에서 Addressable 활용하기 - Azure Blob 에서 에셋 받기
유니티에서 Addressable 활용하기 - Azure Blob 에서 에셋 받기

Addressables

이번 포스팅에서는 Addressable Asset System을 활용하여 에셋을 로드해 봅니다.
Addressable Asset System은 에셋을 조금 더 효율적으로 관리하기 위한 시스템으로
기존의 Asset Bundle을 기반으로 작동합니다.

프로젝트의 에셋을 관리함으로서 전체 프로젝트의 용량을 줄이거나 효율적으로 수정할 수 있습니다.
이번 포스팅에서 Azure Blob을 통해서 에셋을 로드해 봅니다.

Unity3D

프로젝트를 생성하고 Package Manager에서 Addressables 패키지를 설치합니다.


<01. Addressables 다운로드 >

이번엔 로드할 에셋을 만들어봅니다.
단순한 Cube 오브젝트를 생성하여 Prefab으로 만들어 줍니다.
계층구조창의 Cube 오브젝트는 제거하고 프로젝트 창의 Cube 프리펩을 선탁합니다.
다음과 같이 Inspector창에서 Addressable 항목에 체크해줍니다.


<02. Addressables 객체 설정 >

그리고 다음과 같이 AddressableGroup창을 띄워줍니다.


<03. Addressables Group 창 >

Addressable Groups창에서 Default Local Group항목의 드롭다운버튼을 눌러 확인해보면
위에서 체크한 Cube오브젝트가 등록되어 있습니다.
추후에는 에셋들을 그룹화하여 관리할 수 있습니다.


<04. Addressables Group >

Azure Blob

네트워크 스토리지에 빌드된 에셋을 업로드하기 위해 Azure Blob을 활용해 봅니다.
Azure에 가입하고 로그인 후 blob을 검색해서 스토리지 계정항목을 클릭합니다.


<05. Azure Blob >

그리고 상단 +만들기 버튼을 클릭하여 스토리지 생성 창으로 넘어갑니다.
저장소 계정 생성 창에서 다음과 같이 작성한 후 아래 검토 + 만들기 버튼을 누르고 만들기 버튼을 한번 더 만들어줍니다.



<06.07. Azure Blob >

기다리면 배포가 완료됩니다. 아래 `리소스로 이동` 버튼을 눌러줍니다.


<08. Azure Blob 저장소 계정 배포 >

좌측 탭에서 `컨테이너`항목을 선택합니다.


<09. Azure Blob 저장소 계정 선택 >

좌측 상단 `+컨테이너` 항목을 클릭합니다. 우측에서 컨테이너 이름을 소문자로 정하고 아래 공용 엑세스 수준을 `Blob`으로 변경합니다.


<10. Azure Blob 컨테이너 생성 >

생성된 컨테이너를 우클릭하고 `컨테이너 속성`을 선택합니다. 그리고 나오는 창의 `URL`항목을 복사합니다. 해당 URL이 배포된 에셋을 다운로드 받는 경로입니다.


<11. URL 복사 >

## Unity 3D 유니티 3D로 돌아와서 `Addressables Group`창을 확인합니다. 상단 `Profile: Default`항목을 클릭하고 `Manage Profiles`항목을 클릭합니다. `Addressables Profiles`창에서 `Remote` 항목을 `Custom`으로 변경하고 두번째 `Remote.LoadPath` 항목에 방금 복사한 URL을 붙여넣습니다.


<12. Addressables Profiles >

프로젝트 창에서 `AddressableAssetSettings`을 선택합니다. 우측 인스펙터 창에서 `Content Update` 항목에서 `Build Remote Catalog`항목을 체크합니다. 아래에 `Load Path` 항목이 방금 붙여넣은 경로와 같은지 확인합니다.


<13. Addressable Asset Settings >

프로젝트 창에서 `Default Local Group`을 선택합니다. 우측 인스펙터 창에서 `Content Packing and Loading`항목에서 `Build and Load Paths` 항목을 `Remote`로 변경합니다. 마찬가지로 하단 경로가 방금 붙여넣은 경로와 같은지 확인합니다.


<14. Default Local Group >

이제 에셋을 빌드합니다. `Addressables Groups`창에서 `Play Mode Script`항목을 클릭하고 하단 3번째 `Use Existing Build`항목을 클릭합니다. 그리고 동일한 창에서 `Build`항목을 클릭하고 `New Build` -> `Default Build Script`항목을 클릭하여 빌드를 진행합니다.


<15. Asset Build >

다음과 같은 경로에 에셋이 빌드가 됩니다.


<16. Build 완료 >

## Azure Blob 아까 `Azure Blob`에서 생성한 컨테이너로 가서 위 빌드한 파일들을 업로드해줍니다. 상단 `업로드`버튼을 클릭하고 해당 파일을 업로드합니다.


<17. 번들 업로드 >

## Unity 3D #### Script `AddressableLoad.cs` 스크립트를 생성하고 다음과 같이 작성합니다. ```ruby using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets;

유니티에서 Azure PlayFab 활용하기 - PlayFab 가입 및 로그인
유니티에서 Azure PlayFab 활용하기 - PlayFab 가입 및 로그인

Azure Playfab

이번 포스팅에서는 로그인을 구현합니다.

Unity3D

Scene

이전 포스팅에서 진행한 회원가입 프로젝트에서 이어서 진행합니다.
회원가입 씬 UI 처럼 로그인 UI를 다음과 같이 생성합니다.
아이디를 활용한 로그인이기 때문에 아이디와 비밀번호 입력란을 생성합니다.
그리고 로그인 버튼과 회원가입으로 이동 버튼을 생성합니다.
이전 회원가입 UI 오브젝트들을 하나의 게임오브젝트로 묶고, 로그인 UI 오브젝트들을 또 하나의 게임오브젝트로 묶습니다.


<01. 로그인 UI 구현 >

Script

CreateAccountManager.cs 스크립트를 다음과 같이 수정합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.
.
.
    public void SignIn()
    {
        SignIn(username, password);
    }
  
    public void SignIn(string username, string password)
    {
        PlayFabClientAPI.LoginWithPlayFab(new LoginWithPlayFabRequest()
        {
            Username = username,
            Password = password 
        },
        response =>
        {
            Debug.Log($"Successful Account Login: {username}");
            playfabID = response.PlayFabId;
        },
        error =>
        {
            Debug.Log($"Unsuccessful Account Creation: {username} \n {error.ErrorMessage}");
        });
    }
.
.
.
  • SignIn(string username, string password) PlayFabClientAPI.LoginWithPlayFab 함수를 활용하여 아이디와 비밀번호를 활용하여 로그인합니다.
    로그인에 성공하면 response, 실패하면 error 항목에 있는 명령어가 호출됩니다.

Scene

이전 회원가입 포스팅에서 진행한 것 처럼 UsernamePassword Input FieldOn Value Changed (string)
함수란을 추가하고 오브젝트란에 AccountManager오브젝트를 연결하고 해당하는 함수를 연결합니다.


<02. 아이디 Input Field >


<03. 비밀번호 Input Field >

로그인 버튼의 On Click()함수에는 위에서 작성한 SignIn함수를 연결합니다.


<04. 로그인 버튼 >

회원가입으로 이동 버튼에는 두개의 On Click()함수르 생성하고 각각에 회원가입 오브젝트 묶음, 로그인 오브젝트 묶음을 연결해줍니다.
그리고 No Function항목을 클릭하여 GameObject -> Set Active (bool) 항목을 선택해줍니다.
회원가입 오브젝트 묶음에 해당하는 함수의 체크박스에는 체크를 해주고
로그인 오브젝트 묶음에 해당하는 함수의 체크박스에는 체크해제를 합니다.
다음과 같이 세팅을 하고 버튼을 클릭하면 체크박스가 된 오브젝트는 켜지게되고, 해제가 된 오브젝트는 꺼지게 됩니다.


<05. 회원가입으로 이동 버튼 >

##테스트

아이디와 비밀번호를 작성하고 로그인 버튼을 클릭하여 콘솔창에 다음과 같이 로그가 찍히면 성공입니다.


<06. 로그인 성공 >

유니티에서 Azure PlayFab 활용하기 - PlayFab 가입 및 로그인
유니티에서 Azure PlayFab 활용하기 - PlayFab 가입 및 로그인

Azure Playfab

이번 포스팅에서는 회원가입 을 구현합니다.

Unity3D

Scene

PlayFab SDK 를 세팅한 프로젝트에서 진행합니다.
회원가입 UI를 다음과 같이 세팅합니다.
중요한 것은 Username(ID), Password, Email 항목을 입력하는 부분은 Input Field로,
Create Account(아이디 생성) 항목은 Button으로 구현합니다.


<01. 회원가입 UI 구현 >

Script

CreateAccountManager.cs 스크립트를 생성하고 다음과 같이 작성합니다.

```ruby using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using PlayFab; using PlayFab.ClientModels;

유니티에서 Azure PlayFab 활용하기 - PlayFab 프로젝트 세팅
유니티에서 Azure PlayFab 활용하기 - PlayFab 프로젝트 세팅

Azure Playfab

단일 플랫폼에서 멀티플레이어 게임을 구현하기 위한 백엔드 플랫폼 입니다.
유저 데이터베이스, 멀티플레이어 서버 등 온라인 게임 구현에 필요한 것들을 구현할 수 있습니다.
본 포스팅을 통해 기본적인 유니티 프로젝트를 세팅해 봅니다.

Playfab Github.

Playfab Unity SDK 깃허브 페이지에 접근합니다.

PlayfabUnitySDK

해당 깃의 ReadMe 페이지에서 UnitySDK 및 PlayFab Unity Editor Extensions를 클릭하여 다운로드합니다.

GPS 위치 입력
GPS 위치 입력

GPS 좌표 입력

GPS 위치 데이터를 받아 좌표로 표현하는 방법을 알아봅니다.

스크립트 작성

GPSLocation 이라는 스크립트를 생성하고 아래와 같이 작성합니다.

```ruby using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;

Latest Posts

Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기
Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기

Unity3D DOTS 개요 - DOTS 알아보기 1. ECS
Unity3D DOTS 개요 - DOTS 알아보기 1. ECS

DOTS 개요

DOTS는 Data Oriented Tech Stack의 약자로서 기본 상태에서 최적의 성능을 확보할 수 있는 전혀 다른 방식의 코드 작성 방법입니다. DOTS 방식으로 코드를 짠다면 멀티스레드 성능을 통해 더 많은 개체, 더 많은 이펙트, 더 나은 비주얼을 가진 복잡한 콘텐츠를 만들 수 있습니다.
DOTS는 Entity Component System, C# Job System, Burst Compiler 세 가지 요소로 이루어져 있습니다. 본 포스팅에서는 ECS에 대해서 알아봅니다.

유니티3D 설치
유니티3D 설치

유니티3D를 설치해봅니다.