> For the complete documentation index, see [llms.txt](/llms.txt)

# Stamina(GS2 UIKit for Unity) 샘플

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



스태미나 기능을 구현합니다.

## 리포지토리

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

## GS2-Deploy 템플릿

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

## 프로젝트 내용

![img.png](img.png)

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

![img_1.png](img_1.png)

실행하면 이처럼 스태미나의 잔량과 스태미나 조작 UI가 표시됩니다.

![img_2.png](img_2.png)

먼저 "Consume(5)" 버튼을 클릭합니다.

![img_3.png](img_3.png)

스태미나를 소비하여 잔량 표시가 "45/50"이 되고, 회복까지의 카운트다운이 표시됩니다.

다음으로 "Recover(10)" 버튼을 클릭합니다.

![img_4.png](img_4.png)

스태미나 잔량이 "55/50"이 됩니다.
최대값을 초과한 상태가 되었으므로, 다시 카운트다운은 표시되지 않게 됩니다.

## 프로젝트 해설

![img_5.png](img_5.png)

씬의 계층 구조에 주목해 주세요.

### Canvas/StaminaWindow

![img_6.png](img_6.png)

**Gs2StaminaOwnStaminaContext**

이 GameObject 이하의 노드에서 다루는 GS2-Stamina 의 스태미나를 지정하고 있습니다.

![img_8.png](img_8.png)
![img_7.png](img_7.png)

이번에는 GS2-Stamina 의 stamina-0001 이라는 네임스페이스의 Stamina 라는 이름의 스태미나를 지정하고 있습니다.

### Canvas/StaminaWindow/Stamina

**Gs2StaminaStaminaEnabler**

스태미나 로드가 끝나면 StaminaValue 를 활성화합니다.

### Canvas/StaminaWindow/Stamina/StaminaValue/Slider

![img_9.png](img_9.png)

**Gs2StaminaStaminaProgress**

현재 스태미나 값의 최대값에 대한 비율을 0.0~1.0 으로 취득합니다.
최대값을 초과한 상태에서는 1.0 으로 반올림됩니다.

취득한 결과는 OnUpdate(Single) 에 전달되어, Slider 의 값에 반영됩니다.

### Canvas/StaminaWindow/Stamina/StaminaValue/Slider/Label

![img_10.png](img_10.png)

**Gs2StaminaOwnStaminaValueEnabler**

스태미나가 최대값에 도달했는지에 따라 GameObject 를 활성화합니다.

### Canvas/StaminaWindow/Stamina/StaminaValue/Slider/Label/NextRecoverAt

![img_11.png](img_11.png)

**Gs2StaminaOwnStaminaNextRecoverAtFetcher**

스태미나가 다음에 회복되는 일시를 취득합니다.
취득한 결과는 OnUpdate(int64) 로 콜백되어, Gs2CoreTimeSpanLabel 에 값을 반영합니다.

**Gs2CoreTimeSpanLabel**

스태미나가 다음에 회복될 때까지의 남은 시간을 Format 에 지정한 형식으로 정형합니다.
정형된 텍스트는 OnUpdate(String) 으로 콜백되어, 거기서부터 Text 컴포넌트에 값을 반영합니다.

### Process/Gs2AutoLogin

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

[Account 샘플]() 에서 설명하고 있으니 그쪽을 참조해 주십시오.




