이 단계에서는 게임 시작 시 플레이어에게 무기를 할당하는 방법을 학습합니다.
플레이어가 처음 생성되면, WeaponGranters 배열의 첫 번째 무기를 제공합니다. 이를 위해 각 플레이어 생성 패드에 함수를 등록해야 합니다. 등록 가능 이벤트에 대해 더 자세히 알아보려면 장치 상호작용 코딩을 참고하세요.
다음 단계를 따라 플레이어 생성 이벤트에 등록하고 첫 번째 무기를 할당합니다.
-
team_elimination_game클래스에 새 메서드OnPlayerSpawn()을 추가합니다. 플레이어가 처음 생성되거나 재생성할 때 플레이어에게 올바른 무기가 할당되도록 확인하는 메서드입니다.OnPlayerSpawn(InPlayer : agent) : void = Print("A Player just spawned!") -
설정한 함수를 연관된 이벤트에 등록하려면
OnBegin()에 코드를 추가해야 합니다.OnPlayerSpawn을 사용하여 각 플레이어 생성 장치의SpawnedEvent에 등록하기 위한for루프를 생성합니다.OnBegin<override>()<suspends> : void = # 모든 플레이어를 얻습니다 set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Number of eliminations to end game is {EliminationsToEndGame}") for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # 각 플레이어 생성 패드에 등록합니다 -
플레이어에게 첫 번째 무기를 제공하려면
WeaponGranters배열의 첫 번째 아이템 지급 장치에 액세스해야 합니다. 이 작업은 새 메서드를 통해 진행합니다.team_elimination_game클래스에 새 메서드GrantWeapon을 추가합니다. 에이전트option을 받고 주어진WeaponTier에 따라 무기를 할당하는 메서드입니다.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}")GrantWeapon에서WeaponTier를 인덱스로 사용해WeaponGranters배열에서 해당하는 아이템 지급 장치에 액세스합니다.InPlayer의 값에 액세스해 변수GrantedPlayer에 저장합니다.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?):ItemGranter.GrantItem을 사용해 플레이어에게 적절한 무기를 제공합니다.WeaponTier를 로그에 기록해 어떤 무기가 제공되었는지 검증할 수 있습니다.GrantWeapon코드는 이제 다음과 같아야 합니다.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Granting Player a weapon of Tier {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) -
OnPlayerSpawn을 수정하여GrantWeapon을 호출합니다. 플레이어가 생성되면WeaponGranters배열의 첫 번째 제공할 항목 인덱스를 나타내기 위해 integerWeaponTier를 0으로 초기화하고,WeaponTier와 플레이어의 레퍼런스를 전달해GrantWeapon을 호출합니다.OnPlayerSpawn코드는 이제 다음과 같아야 합니다.OnPlayerSpawn(InPlayer : agent) : void= Print("A player just spawned!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("Spawned Player was granted a gun of tier {WeaponTier}") -
Visual Studio Code로 스크립트를 저장하고, 컴파일하고, UEFN 툴바에서 세션 시작(Launch Session) 을 클릭해 레벨을 플레이테스트합니다. 레벨을 플레이테스트하면
WeaponGranters배열의 첫 번째 무기를 가지고 생성되어야 합니다. 로그를 통해 이 행동을 확인합니다.
다음 단계
이 튜토리얼의 다음 단계에서는 맵을 통해 플레이어를 트래킹하고 게임 시작 시 맵을 채우는 방법을 알아보겠습니다.