이 단계에서는 Verse에서 타이머 및 게임 종료 장치를 사용하는 타이머 시스템을 만들어 봅니다. 타이머는 플레이어가 아무 타깃이나 적중하면 시작되고, 타이머가 끝나면 게임이 종료되고 점수판이 표시됩니다.
섬 설정 또는 장치만을 사용해 타이머로 게임을 끝낼 수 있지만, Verse를 사용하면 사용하는 게임 메카닉을 보다 상세히 제어할 수 있습니다.
섬 수정하기
뷰포트 또는 아웃라이너(Outliner) 패널에서 섬 설정(Island Settings) 장치를 선택합니다.
디테일(Details) 패널에서 다음 파라미터를 설정합니다.
종료할 스탯(Stat to End) 선택을 해제합니다. 기존 득점 종료 조건이 제거됩니다. 이는 타이머로 대체할 것입니다.
게임 점수 표시 시간(Game Score Display Time)을 10초로 설정합니다.
점수판 1번째 칸(First Scoreboard Column)을 활성화하고 점수(Score)로 설정합니다.
콘텐츠 브라우저(Content Browser)를 사용해 타이머 장치(Timer Device)를 찾아 뷰포트에 드래그합니다.
디테일 패널에서 게임 중에 표시(Visible During Game)를 숨김(Hidden)으로 설정합니다. 게임 중 타이머 오브젝트가 숨겨지지만, 활성화되어 있을 때 플레이어 HUD에는 시간이 계속 표시됩니다.
콘텐츠 브라우저를 사용해 게임 종료 장치 (End Game Device)를 찾아 뷰포트에 드래그합니다.
Verse 코드 작성
이 페이지에서는 코드 변경을 단계별로 상세히 안내하지만, 작업물을 확인하고 싶다면 완성된 코드 섹션에서 최종 결과를 검토하세요.
Shooting_range_manager_device.verse파일을 엽니다.다음 변수를 추가해 타이머 상태 추적을 위한 신규 장치 레퍼런스와 logic 플래그를 저장합니다.
플래그 변수는 코드에 있는 변수를 참조하여 특정 조건이 충족되었는지 추적합니다. 여기
IsTimerStarted플래그에서는 false가 '아니요', true가 예를 나타냅니다.Verse@editable Timer:timer_device = timer_device{} @editable EndGame:end_game_device = end_game_device{} var IsTimerStarted:logic = false타이머가 다 되어 게임이 끝나면 호출되는
OnTimerSuccess콜백 메서드를 추가합니다.OnTimerSuccess 메서드는 해당하는 경우 타이머를 활성화한 에이전트인 선택적 에이전트 파라미터를 수신합니다. 게임 종료 장치에는 활성화에 옵션이 아닌 에이전트 파라미터가 필요하므로, 선택적 에이전트는
if조건문에서 선택이 아닌 에이전트로 전환됩니다. 옵션 타입에 관한 자세한 정보는 옵션을 참고하세요.Verse# When time runs out, end the game. OnTimerSuccess(Agent:?agent):void= if (TriggerAgent := Agent?): EndGame.Activate(TriggerAgent)타이머의 구독을 설정하는 StartTimer 메서드를 OnTimerSuccess 콜백에 추가하고 타이머를 시작합니다.
Verse# Setup and start the timer. StartTimer():void= # Set the event subscription to call OnTimerSuccess when the timer finishes. Timer.SuccessEvent.Subscribe(OnTimerSuccess) # Start the timer. Timer.Start() # Track that the timer has started. set IsTimerStarted = trueAdjustScore 메서드를 수정해 타이머를 시작합니다. 이를 통해 플레이어가 게임을 시작할 첫 기회를 준비할 수 있습니다.
Verse# Adjusts the player's score by the provided value. AdjustScore(Value:int):void= <# --- New Code Start --- #> # Start the timer if it hasn't started yet. if (not IsTimerStarted?): StartTimer() <# --- New Code End --- #>Verse 코드를 저장 및 빌드합니다.
완성된 코드
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
# A device that manages shooting range gameplay.
shooting_range_manager_device := class(creative_device):
@editable
ScoreManager:score_manager_device = score_manager_device{}
@editable
모두 합치기
뷰포트 또는 아웃라이너(Outliner) 패널에서 shooting_range_manager_device를 선택합니다.
디테일(Details) 패널에서 다음 파라미터를 설정합니다.
타이머 장치에 Timer를 설정합니다.
게임 종료 장치에 EndGame을 설정합니다.
변경 사항을 푸시하고 섬을 플레이테스트합니다.
아무 타깃에나 사격할 때 타이머가 시작되는지 검증합니다.
타이머가 다 되면 게임이 종료되고 점수판이 표시되는지 검증합니다.
더 알아볼 준비가 되셨나요?
3. 추가 시간 타깃
게임에서 귀중한 시간 몇 초를 더 벌 수 있는 깜짝 추가 타깃을 제공하세요!