Questo passaggio ti illustra come assegnare un'arma a un giocatore all'inizio della partita.
Quando un giocatore si genera per la prima volta, gli viene assegnata la prima arma dell'array WeaponGranters. Per fare sì che ciò accada, dovrai sottoscrivere le funzioni a ogni pedana di generazione giocatore. Per maggiori dettagli sugli eventi a cui è possibile sottoscriversi, vedi Codifica delle interazioni con i dispositivi.
Per sottoscriverti agli eventi di generazione dei giocatori e per assegnare loro la prima arma, attieniti alla seguente procedura.
-
Aggiungi un nuovo metodo
OnPlayerSpawn()alla classeteam_elimination_game. Questo metodo assicura di assegnare al giocatore l'arma giusta quando si genera per la prima volta e quando si rigenera.OnPlayerSpawn(InPlayer : agent) : void = Print("Un giocatore è stato appena generato!") -
Per sottoscrivere le funzioni appena impostate agli eventi associati ai giocatori, devi aggiungere nuovo codice a
OnBegin(). Crea un loopforper sottoscrivere l'eventoSpawnedEventdi ciascun giocatore, utilizzandoOnPlayerSpawn.OnBegin<override>()<suspends> : void = # Ottieni tutti i giocatori set Teams = GetPlayspace().GetTeamCollection().GetTeams() set EliminationsToEndGame = WeaponGranters.Length Print("Il numero di eliminazioni necessario per concludere la partita è {EliminationsToEndGame}") for (Spawner : PlayerSpawners): Spawner.SpawnedEvent.Subscribe(OnPlayerSpawn) # Sottoscrivi a ciascuna pedana di generazione giocatore -
Per assegnare ai giocatori la prima arma, è necessario accedere al primo assegnatore oggetti nell'array
WeaponGranters. Eseguirai questa operazione con un nuovo metodo.- Aggiungi un nuovo metodo
GrantWeaponalla classeteam_elimination_game. Questo metodo prende un'optionagente e gli assegna un'arma in base alWeaponTierfornito.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Conferimento al giocatore di un'arma di livello {WeaponTier}")- All'interno di
GrantWeapon, accedi all'assegnatore oggetti appropriato dell'arrayWeaponGrantersutilizzandoWeaponTiercome indice. Accedi al valore all'interno diInPlayere memorizzalo in una variabileGrantedPlayer.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Conferimento al giocatore di un'arma di livello {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?):- Assegna al giocatore l'arma appropriata utilizzando
ItemGranter.GrantItem. Puoi verificare quale arma è stata assegnata registrando ilWeaponTier. Il codiceGrantWeapondovrebbe essere simile al codice seguente.
GrantWeapon(InPlayer : ?agent, WeaponTier : int) : void= Print("Conferimento al giocatore di un'arma di livello {WeaponTier}") if(ItemGranter := WeaponGranters[WeaponTier], GrantedPlayer := InPlayer?): ItemGranter.GrantItem(GrantedPlayer) - Aggiungi un nuovo metodo
-
Modifica
OnPlayerSpawnper chiamareGrantWeapon. Quando un giocatore si genera, inizializza un interoWeaponTiercon il valore zero per riflettere l'indice del primo assegnatore oggetti nell'arrayWeaponGranters, quindi chiamaGrantWeaponpassandoWeaponTiere un riferimento al giocatore. Il codiceOnPlayerSpawndovrebbe essere simile al codice seguente.OnPlayerSpawn(InPlayer : agent) : void= Print("Un giocatore è stato appena generato!") WeaponTier : int = 0 GrantWeapon(option{InPlayer}, WeaponTier) Print("Al giocatore generato è stata conferita una pistola di livello {WeaponTier}") -
Salva lo script in Visual Studio Code, compilalo e fai clic su Avvia sessione nella barra degli strumenti UEFN per eseguire il playtest del livello. Quando esegui il playtest del tuo livello, dovresti far generare la prima arma nell'array
WeaponGranters. Verifica questo comportamento con il registro.
Passaggio successivo
Nel passaggio successivo di questo tutorial, imparerai a monitorare i giocatori utilizzando le mappe e a popolarle quando inizia la partita.