le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
In questo articolo continuiamo a ottimizzare le abilità e ora le abilità attive aggiunte al personaggio possono essere sincronizzate con l'interfaccia utente. In questo articolo miglioreremo il consumo delle abilità (rilasciando abilità per ridurre il mana) e il meccanismo di raffreddamento.
Possiamo vedere che nel valore predefinito della classe di abilità, puoi impostarne il raffreddamento e il consumo di GE
Pertanto, utilizzeremo successivamente GE per impostare il raffreddamento e il consumo delle competenze.
Per prima cosa creiamo un progetto e la classe genitore selezionata è Gameplay Effect
Chiamalo GE_Cost_FireBolt, che significa il costo della palla di fuoco.
Per consumare la nostra durata, scegli Istantaneo.
Quindi aggiungiamo un modificatore per ridurre la quantità di mana del personaggio, riducendola di 20 ogni volta che viene utilizzata un'abilità.
Viene creato un semplice GE di consumo e lo applichiamo alle competenze
Successivamente, dobbiamo chiamare il nodo Commit Ability nell'abilità. Questo nodo dedurrà il mana richiesto per l'abilità. Se c'è un tempo di recupero, l'abilità entrerà nel tempo di recupero.
Commit Ability è un nodo unificato per detrarre mana e raffreddamento. Naturalmente, puoi anche separarlo e avere nodi separati per detrarre consumo e raffreddamento.
Esegui l'effetto di prova
Per prima cosa determiniamo se l'abilità verrà attivata se non c'è abbastanza mana. Stampiamo i dati prima di elaborare il consumo.
Se la quantità di mana è sufficiente, può essere stampata con successo, ma se la quantità di mana non può supportare il rilascio dell'abilità, non verrà stampata, il che dimostra che se non ci sono abbastanza risorse, l'abilità non verrà inserita e non viene giudicato dall'Abilità di Commit, che viene utilizzata solo per il consumo del nodo Risorsa.
Osserviamo il codice sorgente e il codice che chiama è K2_CommitAbility
CommitAbility viene chiamato all'interno per implementare la logica, quindi viene verificato se il consumo è sufficiente per fornire le competenze e la funzione viene chiamata per detrarre le risorse.
CommExecute è una funzione di detrazione delle risorse, che richiama internamente la detrazione e il raffreddamento delle risorse
Dai un'occhiata ad Applica Cooldown, che prenderà il livello di abilità e applicherà il GE all'ASC
Le risorse dell'applicazione vengono consumate allo stesso modo e vengono ottenuti anche i livelli di abilità.
Ora, sappiamo che l'utilizzo del consumo di abilità può modificare la quantità di mana consumata attraverso il livello di abilità. Possiamo usare la tabella per definire diversi livelli e consumo di mana.
Quindi creiamo una nuova tabella delle curve per impostare il consumo di mana delle abilità a diversi livelli.
Crea una tabella di curve, seleziona Costante come tipo e imposta il consumo di mana a ciascun livello su un valore fisso.
Denominato CT_Cost
Aggiungi internamente il consumo di mana dell'abilità dal livello 1 al livello 10 di Fireball.
Quindi utilizza la tabella delle curve qui in GE, seleziona la riga creata e imposta il valore su -1
Quindi modificare il livello di abilità iniziale nel codice per il test
Dopo aver rilasciato un'abilità, la quantità di mana sarà tre volte maggiore rispetto a prima, il che dimostra che non ci sono problemi con le impostazioni.
Il principio del raffreddamento delle abilità consiste nell'applicare un tag di raffreddamento all'ASC durante la fase di raffreddamento. Questa abilità non può essere utilizzata nuovamente finché esiste il tag di raffreddamento.
Quindi, vogliamo implementare il raffreddamento, creando prima un'etichetta per il raffreddamento
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
Quindi registrati al tag manager
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
Crea una palla di fuoco per raffreddare GE
Modifica GE in una durata Has sensibile al tempo
Come puoi vedere qui, il tempo di raffreddamento può essere impostato utilizzando i vari metodi che abbiamo utilizzato per modificare il valore in precedenza. Qui utilizziamo quello più semplice, impostandolo direttamente su 1s.
Non abbiamo bisogno di modificare il contenuto relativo al personaggio qui. Dobbiamo solo aggiungere un tag rinfrescante all'ASC quando questo GE entra in vigore. Aggiungiamo un componente per l'effetto di gioco dei tag target.
Aggiungi un'etichetta di raffreddamento all'attore tramite questo componente e aggiungi l'etichetta di raffreddamento che abbiamo creato.
Quindi applica il tempo di recupero nell'abilità
Eseguendo il test, abbiamo scoperto che possiamo rilasciare l'abilità solo una volta al secondo.
Generalmente generiamo solo un'istanza di un'abilità del personaggio per un personaggio. Per evitare che il client disattivi l'abilità prima che venga attivata, termineremo l'abilità quando termina l'animazione del montaggio dell'abilità o quando termina il mix-in. annullato con la forza e, una volta terminata l'abilità, sarà possibile continuare a riprodurre il montaggio.
Dobbiamo anche attivare l'abilità di istanza di riattivazione in modo che quando si attiva nuovamente, disattivi l'attivazione precedente.
Follow-up: Ora abbiamo il consumo e può essere visualizzato correttamente sull'interfaccia utente, ma il raffreddamento non è stato ancora implementato. Dopo aver utilizzato l'abilità, l'avanzamento del raffreddamento dell'abilità non può essere visualizzato sull'interfaccia utente dell'abilità i cambiamenti futuri nella capacità di raffreddamento e visualizzarli sopra l'interfaccia utente.