Documentation index for AI agents

Account(GS2 UIKit for Unity)의 샘플

GS2 UIKit for Unity를 사용한 GS2-Account 기능 구현 샘플 소개

계정 생성과 로그인 처리를 실행합니다.

저장소

https://github.com/gs2io/gs2-uikit-for-unity-sample/tree/main/Account

GS2-Deploy 템플릿

https://github.com/gs2io/gs2-uikit-for-unity-sample/blob/main/Account/initialize_account_template.yaml

프로젝트 내용

img.png

프로젝트를 열면 위와 같이 표시됩니다.

img_2.png

실행해 보면 처음에는 “Not Logged-in"이 표시됩니다.

img_1.png

잠시 기다리면 “Logged-in"이라는 표시로 바뀌고, 오른쪽 아래에 로그인 중인 사용자ID가 표시됩니다.

프로젝트 해설

img_3.png

씬의 계층 구조(hierarchy)를 확인하십시오. GS2 로고가 표시된 Game Object에는 UI Kit의 컴포넌트가 할당되어 있습니다.

Canvas/View

img_4.png

2개의 컴포넌트가 할당되어 있는 것을 확인할 수 있습니다.

Gs2AccountLoggedInEnabler

Add Component 메뉴에서는 다음 경로로 추가할 수 있습니다. img_5.png

로그인 상태에 따라 GameObject를 활성화·비활성화할 수 있는 컴포넌트입니다.

Logged In에 체크하지 않고 Target에 GameObject를 지정하면, 미로그인 상태일 때 Target에 지정한 GameObject가 활성화되고, 로그인 시에는 비활성화됩니다.

반대로 Logged In에 체크를 해 두면 로그인 시 Target에 지정한 GameObject가 활성화되고, 미로그인 상태일 때는 비활성화됩니다.

이번 샘플에서는 미로그인 상태일 때 “NotFoggedIn"이 활성화되고, 로그인 시에는 “LoggedIn"이 활성화됩니다.

Canvas/View/LoggedIn

img_6.png

여기서도 2개의 컴포넌트가 할당되어 있는 것을 확인할 수 있습니다.

Gs2AccountOwnAccountContext

이 GameObject보다 하위 요소에서 사용할 컨텍스트를 지정합니다. Gs2AccountOwnAccountContext에서는 GS2-Account의 로그인 중인 계정에 관한 컨텍스트를 지정합니다.

“OwnAccount"라는 ScriptableObject가 지정되어 있습니다.

img_8.png img_7.png

OwnAccount에서 지정한 ScriptableObject를 확인해 보면, game-0001이라는 이름의 네임스페이스 내에서 자기 자신의 계정을 나타내는 ScriptableObject가 지정되어 있습니다.

Gs2AccountOwnAccountFetcher

Gs2AccountOwnAccountContext에서 지정된 계정의 정보를 취득하여 보유합니다.

Canvas/View/LoggedIn/UserId

img_9.png

Gs2AccountAccountLabel

부모 노드의 Gs2AccountOwnAccountFetcher가 취득한 계정 정보를 Format에서 지정한 형식으로 출력합니다.

샘플에서는 {userId}를 지정하고 있으므로, 자기 자신의 사용자ID로 치환됩니다. Add Format Parameter 버튼을 누르면 Format에 플레이스홀더를 추가할 수 있습니다.

정형화된 문자열은 OnUpdate(String) 이벤트에 전달됩니다. 이번에는 동일한 GameObject에 설정된 Text에 값을 반영하고 있습니다.

Process/Gs2AutoLogin

로그인 처리를 실행하는 프리팹이 설정되어 있습니다.

img_11.png

이러한 API를 실행하는 프리팹은 컨텍스트 메뉴에서 추가할 수 있습니다.

img_10.png

AutoLogin

계정 생성·로그인에 사용하는 GS2-Account의 네임스페이스와, 로그인 처리에 사용하는 GS2-Key의 암호화 키를 지정하고 있습니다.

OnAutoLogin에서 로그인이 성공했을 때 호출되는 이벤트 핸들러를 설정하고 있습니다. 기본값으로는 자신의 GameObject를 비활성화하여, 로그인 처리가 중복으로 실행되지 않도록 설정되어 있습니다.

OnError에서 로그인에 실패했을 때 호출되는 이벤트 핸들러를 설정하고 있습니다. 여기서는 오류 내용을 출력하는 함수를 호출하고 있습니다.