Beatchoi's Blog

List of Postings

LightshipAR SDK 활용하기 - LightshipAR 프로젝트 세팅
LightshipAR SDK 활용하기 - LightshipAR 프로젝트 세팅

LightshipAR SDK

포켓몬고의 개발사로 잘 알려진 Niantic에서 제공하는 증강현실 SDK 입니다.
기본적으로 포켓몬고에 적용되는 기능들을 구현할 수 있으며 기본적인 지면인식, 공간인식을 포함하여
지오펜싱을 활용한 GPS기반 위치인식, 환경 세그멘테이션 등의 기능들을 활용할 수 있습니다.

LightshipAR SDK 다운로드

LightshipAR SDK
Niantic의 LightshipAR SDK 다운로드 페이지에 접근합니다.
가입을 진행하고 다음 페이지에서 Download ARDK를 클릭하여 다운로드 합니다.


<01. Download LightshipAR SDK >

다운로드 받은 유니티 패키지 파일을 유니티 프로젝트에 풀어줍니다.


<02. Import LightshipAR SDK >

LightshipAR SDK 시작

라이선스 키 생성 및

프로젝트를 진행하기에 앞서 제일 먼저 해야할 것은 Dashboard에서 프로젝트를 생성하고 라이선스 키를 생성하는 것입니다.
다음 페이지로 이동합니다.
LightshipAR SDK Dashboard

좌측 Projects항목을 클릭하고 중앙의 New Project버튼을 클릭합니다.
상단 Untitled항목을 클릭하여 프로젝트의 이름을 수정하고
하단 +Create New Key버튼을 클릭하여 라이선스 키를 생성합니다.


<03. LightshipAR SDK Dashboard >

****모양 옆의 복사 버튼을 눌러 라이선스 키를 복사합니다.


<04. Create License Key >

유니티로 돌아가서 프로젝트 창에 Resources/ARDK 의 경로로 폴더를 생성합니다.
Resources폴더를 생성 후 그 안에 ARDK폴더를 생성하면 됩니다.


<05. Resources/ARDK 폴더 생성 >

해당 폴더 안에 ArdkAuthConfig라는 파일을 생성합니다.
프로젝트 창에서 마우스 우클릭, Create -> ARDK -> ArdkAuthConfig순으로 접근하면 됩니다.


<06. ArdkAuthConfig 생성 >

ArdkAuthConfig 파일을 선택하고 우측 인스펙터 창을 확인합니다.
Api Key항목에 전에 복사했던 라이선스 키를 붙여넣습니다.


<07. 라이선스 키 추가 >

프로젝트 설정 - 안드로이드

안드로이드 기기에 빌드하기 위한 설정을 진행해 봅니다.

유니티에서 Azure PlayFab 활용하기 - PlayFab Multiplay
유니티에서 Azure PlayFab 활용하기 - PlayFab Multiplay

Azure Playfab

이번 포스팅에서는 중앙서버를 활용한 멀티플레이를 구현해 봅니다.
이전 네트워크 포스팅 중 Mirror Network를 활용합니다.

Setting

이전 포스팅을 참고하여 Playfab for UnitySDK를 새로 생성한 프로젝트에 적용시킵니다.

로컬 네트워크 상에서의 멀티플레이가 아닌 Azure Playfab을 중앙서버로 두는 멀티플레이를 구현하기 위해 몇가지 설정을 해줍니다.
먼저
GSDK for Unity
위 깃허브 링크에서 GSDK를 다운로드 해줍니다.


<01. GSDK 다운로드 >

다운로드 받은 파일의 압축을 풀고 UnityGsdk -> Assets -> PlayFabSdk에 있는 MultiplayerAgent 폴더를 통채로 유니티 프로젝트 창의 PlayFabSDK 폴더로 복사합니다.


<02. GSDK 임포트 >

Player Settings창에서 Scripting Define Symbols항목을 찾아 ENABLE_PLAYFABSERVER_API을 추가해줍니다.


<03. ENABLE_PLAYFABSERVER_API >

유니티에서 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;

Latest Posts

LightshipAR SDK 활용하기 - Maps SDK의 활용
LightshipAR SDK 활용하기 - Maps SDK의 활용

ARDK Maps SDK

Lightship의 geofencing 기능을 구현할 수 있는 Maps SDK 활용법을 알아봅니다.

콘텐츠 개발

프로젝트 세팅

본 포스팅은 ARDK 3.9 버전, Maps SDK 0.4 버전을 기준으로 작성합니다. 이전 포스팅을 참조하여 SDK를 임포트 합니다.

Top Down Map

  1. 네이버 지도같은 일반적인 탑-다운 맵을 구현해 봅니다.

Unity3D에서의 UI - Rect Transform
Unity3D에서의 UI - Rect Transform

Unity UI RectTransform :: 개요

UI 객체들의 위치, 크기, 기준점 등등을 담당하는 Rect Transform에 대하여 알아봅니다.

Unity3D에서의 UI - UI의 구성
Unity3D에서의 UI - UI의 구성

Unity UI :: 개요

Unity UI는 게임 및 애플리케이션용 사용자 인터페이스를 개발하는 데 쓰이는 간단한 UI 툴킷입니다. Unity UI는 게임 오브젝트 기반 UI 시스템으로, 컴포넌트와 게임 뷰를 사용하여 사용자 인터페이스를 배열하고 위치와 스타일을 지정합니다. Unity UI는 Unity 에디터 내 사용자 인터페이스에 대해 사용할 수 없습니다.https://docs.unity3d.com/kr/2019.1/Manual/UIToolkits.html