Experience(GS2 UIKit for Unity) 샘플
경험치·레벨 기능을 구현합니다.
저장소
https://github.com/gs2io/gs2-uikit-for-unity-sample/tree/main/Experience
GS2-Deploy 템플릿
프로젝트 내용

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

실행하면 이와 같이 현재 레벨과 레벨 캡, 진행률 바가 표시됩니다.

화면 하단에 경험치 조작 버튼이 준비되어 있습니다.
“Add Experience(100)“으로 경험치를 100 추가해 봅시다.

경험치가 추가되어 레벨이 1에서 3으로 올랐습니다.
다시 한 번 “Add Experience(100)“으로 경험치를 100 추가해 봅시다.

레벨이 5로 올라 레벨 캡에 도달했습니다. 이 상태를 알기 쉽게 하기 위해, 레벨 값 표기가 검은색에서 빨간색으로 바뀌어 있습니다.
“Add Rank Cap"을 눌러 레벨 캡 인상을 실행해 봅시다.

레벨 캡이 5에서 6으로 인상되었습니다. 그 결과 현재 레벨이 레벨 캡에 도달하지 않은 상태가 되었으므로, 레벨 표기도 빨간색에서 검은색으로 돌아왔습니다.
프로젝트 해설

씬의 계층 구조(Hierarchy)에 주목해 주십시오.
Canvas/ExperienceWindow

Gs2ExperienceExperienceModelContext
이 GameObject 아래의 노드에서 다루는 경험치 모델을 지정하고 있습니다.

이번에는 GS2-Experience의 experience-0001이라는 네임스페이스의, Experience라는 경험치 모델을 지정하고 있습니다.
Gs2ExperienceOwnStatusContext
이 GameObject 아래의 노드에서 다루는 자신의 스테이터스를 지정하고 있습니다.

이번에는 GS2-Experience의 experience-0001이라는 네임스페이스의, Experience라는 경험치 모델, player라는 프로퍼티ID를 지정하고 있습니다.
Gs2ExperienceOwnStatusFetcher
Gs2ExperienceOwnStatusContext에서 지정한 스테이터스를 취득합니다.
Canvas/ExperienceWindow/Experience/…/RankValue

Gs2ExperienceStatusEnabler
스테이터스의 로딩 상황에 따라 ValueContainer / Slider를 활성화·비활성화하고 있습니다.
Canvas/ExperienceWindow/Experience/…/RankValue/ValueContainer

Gs2ExperienceStatusRankValueEnabler
스테이터스의 랭크가 최대값에 도달했는지 여부에 따라 Value / ReachMaxValue를 활성화·비활성화하고 있습니다.
Canvas/ExperienceWindow/Experience/…/RankValue/ValueContainer/Value

Gs2ExperienceOwnStatusLabel
현재 랭크 값이나 랭크 캡 값을 Format으로 지정한 형식으로 정형하고 있습니다. 정형한 결과는 OnUpdate(String)으로 콜백되므로, Text 컴포넌트에 반영하고 있습니다. 이 Text 컴포넌트는 텍스트 색상으로 검은색을 지정하고 있습니다.
Canvas/ExperienceWindow/Experience/…/RankValue/ValueContainer/ReachMaxValue

Gs2ExperienceOwnStatusLabel
현재 랭크 값이나 랭크 캡 값을 Format으로 지정한 형식으로 정형하고 있습니다. 정형한 결과는 OnUpdate(String)으로 콜백되므로, Text 컴포넌트에 반영하고 있습니다. 이 Text 컴포넌트는 텍스트 색상으로 빨간색을 지정하고 있습니다.
Canvas/ExperienceWindow/Experience/…/Slider

Gs2ExperienceStatusProgress
현재 랭크에서 다음 랭크업까지 필요한 경험치에 도달하기까지의 진행률을 0.0~1.0으로 OnUpdate(Single)의 콜백으로 반환합니다. Slider.value에 값으로 반영하고 있습니다.
Canvas/ExperienceWindow/Input/AddExperience
Gs2ExchangeRateModelContext
경험치를 10 추가하는 GS2-Exchange의 교환 비율을 설정합니다.

여기서는 GS2-Exchange의 exchange-0006이라는 이름의 네임스페이스의 AddExperience라는 이름의 교환 비율을 지정하고 있습니다.
Canvas/ExperienceWindow/Input/AddExperience/Gs2ExchangeExchangeExchangeAction

이 컨텍스트 메뉴에서 프리팹을 추가할 수 있습니다.

Count에 교환 수량을 지정하고, 프리팹을 활성화함으로써 Gs2ExchangeRateModelContext에서 지정한 교환 비율의 교환을 실행합니다.
OnExchangeComplete(String)
에 교환 처리가 정상적으로 종료된 경우의 콜백을 설정할 수 있으며, 자기 자신을 비활성화하고 있습니다.
Canvas/ExperienceWindow/Input/AddExperienceX10
Canvas/ExperienceWindow/Input/AddExperience 와 마찬가지로, 경험치를 10 추가하는 GS2-Exchange의 교환 비율을 설정합니다.
Canvas/ExperienceWindow/Input/AddExperienceX10/Gs2ExchangeExchangeExchangeAction
교환 수량으로 10이 설정되어 있습니다.
Canvas/ExperienceWindow/Input/AddRankCap
랭크 캡을 1 추가하는 GS2-Exchange의 교환 비율을 설정합니다.
Process/Gs2AutoLogin
로그인 처리를 실행하는 프리팹이 설정되어 있습니다.
Account 샘플에서 설명하고 있으므로, 그쪽을 참조해 주십시오.