Account(GS2 UIKit for Unity)의 샘플
계정 생성과 로그인 처리를 실행합니다.
저장소
https://github.com/gs2io/gs2-uikit-for-unity-sample/tree/main/Account
GS2-Deploy 템플릿
프로젝트 내용

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

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

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

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

2개의 컴포넌트가 할당되어 있는 것을 확인할 수 있습니다.
Gs2AccountLoggedInEnabler
Add Component 메뉴에서는 다음 경로로 추가할 수 있습니다.

로그인 상태에 따라 GameObject를 활성화·비활성화할 수 있는 컴포넌트입니다.
Logged In에 체크하지 않고 Target에 GameObject를 지정하면, 미로그인 상태일 때 Target에 지정한 GameObject가 활성화되고, 로그인 시에는 비활성화됩니다.
반대로 Logged In에 체크를 해 두면 로그인 시 Target에 지정한 GameObject가 활성화되고, 미로그인 상태일 때는 비활성화됩니다.
이번 샘플에서는 미로그인 상태일 때 “NotFoggedIn"이 활성화되고, 로그인 시에는 “LoggedIn"이 활성화됩니다.
Canvas/View/LoggedIn

여기서도 2개의 컴포넌트가 할당되어 있는 것을 확인할 수 있습니다.
Gs2AccountOwnAccountContext
이 GameObject보다 하위 요소에서 사용할 컨텍스트를 지정합니다. Gs2AccountOwnAccountContext에서는 GS2-Account의 로그인 중인 계정에 관한 컨텍스트를 지정합니다.
“OwnAccount"라는 ScriptableObject가 지정되어 있습니다.

OwnAccount에서 지정한 ScriptableObject를 확인해 보면, game-0001이라는 이름의 네임스페이스 내에서 자기 자신의 계정을 나타내는 ScriptableObject가 지정되어 있습니다.
Gs2AccountOwnAccountFetcher
Gs2AccountOwnAccountContext에서 지정된 계정의 정보를 취득하여 보유합니다.
Canvas/View/LoggedIn/UserId

Gs2AccountAccountLabel
부모 노드의 Gs2AccountOwnAccountFetcher가 취득한 계정 정보를 Format에서 지정한 형식으로 출력합니다.
샘플에서는 {userId}를 지정하고 있으므로, 자기 자신의 사용자ID로 치환됩니다. Add Format Parameter 버튼을 누르면 Format에 플레이스홀더를 추가할 수 있습니다.
정형화된 문자열은 OnUpdate(String) 이벤트에 전달됩니다. 이번에는 동일한 GameObject에 설정된 Text에 값을 반영하고 있습니다.
Process/Gs2AutoLogin
로그인 처리를 실행하는 프리팹이 설정되어 있습니다.

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

AutoLogin
계정 생성·로그인에 사용하는 GS2-Account의 네임스페이스와, 로그인 처리에 사용하는 GS2-Key의 암호화 키를 지정하고 있습니다.
OnAutoLogin에서 로그인이 성공했을 때 호출되는 이벤트 핸들러를 설정하고 있습니다. 기본값으로는 자신의 GameObject를 비활성화하여, 로그인 처리가 중복으로 실행되지 않도록 설정되어 있습니다.
OnError에서 로그인에 실패했을 때 호출되는 이벤트 핸들러를 설정하고 있습니다. 여기서는 오류 내용을 출력하는 함수를 호출하고 있습니다.