플레이어가 진행 중인 게임에 참가했을 때, 새 라운드가 시작될 때까지 관전하면서 기다리게 만드는 것은 좋지 않습니다. 새 플레이어가 생성되어 즉시 플레이를 시작할 수 있도록 만드는 것이 이상적입니다. 이를 처리하려면 TeamMap 에 새 플레이어를 추가하고, 처치 이벤트에 등록하고, 첫 번째 무기를 지급해야 합니다.
다음 단계를 따라 진행 중인 게임에 참여할 때 플레이어에게 무기를 지급하고 플레이어를 플레이어 이벤트에 등록하세요.
-
team_elimination_game클래스에 새 메서드OnPlayerAdded를 추가합니다. 진행 중인 게임에 참가한 플레이어를 팀에서 무기 등급이 가장 낮은 다른 플레이어와 동일한 등급으로 승급시키는 메서드입니다.OnPlayerAdded(InPlayer:player):void= Print("A New Player Joined!") -
GetTeam[]을 사용해 새 플레이어의 팀을 구하고 이를 로컬 변수Team에 저장합니다. 이 플레이어의FortCharacter를 얻어서 변수FortCharacter에 저장합니다.OnPlayerAdded(InPlayer:player):void= Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] -
새 플레이어를
TeamMap에 할당하려면 새 플레이어의Team과 연결된player_map에 액세스해야 합니다. 새 플레이어와 연결된player_map을 구한 다음 로컬 변수PlayerMap에 저장합니다.OnPlayerAdded(InPlayer:player):void= Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayerr.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] -
PlayerMap에서 플레이어의 점수를 0으로 설정한 다음TeamMap을 로컬 변수PlayerMap으로 업데이트합니다.OnPlayerAdded(InPlayer:player):void= Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap -
GrantWeapon을 호출해 플레이어에게 첫 번째 무기를 지급하고, 새 플레이어의 처치 이벤트에 등록합니다.OnPlayerAdded코드는 이제 다음과 같아야 합니다.OnPlayerAdded(InPlayer:player):void= Print("A New Player Joined!") if: Team := GetPlayspace().GetTeamCollection().GetTeam[InPlayer] FortCharacter := InPlayer.GetFortCharacter[] var PlayerMap : player_map = TeamMap[Team] set PlayerMap[InPlayer] = 0 set TeamMap[Team] = PlayerMap then: GrantWeapon(option{InPlayer}, 0) Print("Set new player weapon tier to 0 in the TeamMap") FortCharacter.EliminatedEvent().Subscribe(OnPlayerEliminated) # 이 플레이어의 처치 이벤트에 등록합니다 -
OnBegin에서OnPlayerAdded를 사용해 플레이스페이스의PlayerAddedEvent에 등록합니다. 이제 진행 중인 게임에 플레이어가 참가하면OnPlayerAdded가 트리거됩니다.PlayerAddedEvent는 플레이스페이스 자체로 트리거되는 이벤트이므로, 등록을 위해 별도의 장치가 필요하지 않습니다.OnBegin<override>()<suspends> : void = set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Number of eliminations to end game is {EliminationsToEndGame}") Print("Beginning to assign players") PopulateTeamsAndPlayers() for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # 각 플레이어 생성 패드에 등록합니다 for (Sentry : Sentries): Sentry.EliminatedEvent.Subscribe(TestPlayerEliminated) # 각 보초에 등록합니다 # 게임에 참가하는 새 플레이어에 등록합니다 GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)
Visual Studio Code에서 스크립트를 저장하고 컴파일한 후 UEFN 툴바에서 세션 시작(Launch Session) 을 클릭해 레벨을 플레이테스트합니다. 진행 중인 게임에 새 플레이어가 참가하면 첫 번째 무기를 가지고 생성되어야 합니다. 해당 플레이어 또는 팀원이 처치를 달성하면 다음 무기 등급으로 승급되어야 합니다.
다음 단계
튜토리얼의 다음 단계에서는 싱글 플레이어 플레이 시 보초를 사용해 처치를 테스트하는 방법을 학습할 것입니다.