τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Σε αυτό το άρθρο, συνεχίζουμε να βελτιστοποιούμε τις δεξιότητες και τώρα οι ενεργές δεξιότητες που προστίθενται στον χαρακτήρα μπορούν να συγχρονιστούν με τη διεπαφή χρήστη. Σε αυτό το άρθρο, θα βελτιώσουμε την κατανάλωση δεξιοτήτων (απελευθέρωση δεξιοτήτων για μείωση μάνα) και τον μηχανισμό ψύξης.
Μπορούμε να δούμε ότι στην προεπιλεγμένη τιμή της κλάσης δεξιοτήτων, μπορείτε να ρυθμίσετε την ψύξη και την κατανάλωση GE
Επομένως, στη συνέχεια, θα χρησιμοποιήσουμε τη GE για να ρυθμίσουμε την ψύξη και την κατανάλωση των δεξιοτήτων.
Πρώτα δημιουργούμε ένα σχεδιάγραμμα και η επιλεγμένη γονική κλάση είναι Gameplay Effect
Ονομάστε το GE_Cost_FireBolt, που σημαίνει το κόστος της βολίδας.
Για να καταναλώσετε τη διάρκειά μας, επιλέξτε Instant.
Στη συνέχεια προσθέτουμε ένα Modifiers για να μειώσουμε το ποσό μάνα του χαρακτήρα, μειώνοντάς το κατά 20 κάθε φορά που χρησιμοποιείται μια ικανότητα.
Δημιουργείται μια απλή GE κατανάλωσης και την εφαρμόζουμε στις δεξιότητες
Στη συνέχεια, πρέπει να καλέσουμε τον κόμβο Commit Ability στο skill Αυτός ο κόμβος θα αφαιρέσει το mana που απαιτείται για την ικανότητα.
Το Commit Ability είναι ένας ενοποιημένος κόμβος για αφαίρεση μάνα και ψύξη Φυσικά, μπορείτε επίσης να τον διαχωρίσετε και να έχετε ξεχωριστούς κόμβους για αφαίρεση κατανάλωσης και ψύξης.
Εφέ δοκιμής εκτέλεσης
Αρχικά, καθορίζουμε εάν η ικανότητα θα ενεργοποιηθεί εάν δεν υπάρχει αρκετό mana Εκτυπώνουμε ένα στοιχείο πριν επεξεργαστούμε την κατανάλωση.
Εάν η ποσότητα μάνα είναι αρκετή, μπορεί να εκτυπωθεί με επιτυχία, αλλά εάν η ποσότητα μάνα δεν μπορεί να υποστηρίξει την απελευθέρωση της ικανότητας, δεν θα εκτυπωθεί, γεγονός που αποδεικνύει ότι εάν δεν υπάρχουν αρκετοί πόροι, η ικανότητα δεν θα εισαχθεί και δεν κρίνεται από την ικανότητα δέσμευσης, η οποία χρησιμοποιείται μόνο για κατανάλωση.
Εξετάζουμε τον πηγαίο κώδικα και ο κωδικός που καλεί είναι K2_CommitAbility
Το CommitAbility καλείται μέσα για να εφαρμόσει τη λογική, και μετά ελέγχεται αν η κατανάλωση είναι επαρκής για να παρέχει τις δεξιότητες και η συνάρτηση καλείται να αφαιρέσει τους πόρους.
Το CommExecute είναι μια συνάρτηση αφαίρεσης πόρων, η οποία εσωτερικά καλεί αφαίρεση πόρων και ψύξη
Ρίξτε μια ματιά στο Apply Cooldown, το οποίο θα λάβει το επίπεδο δεξιοτήτων και θα εφαρμόσει το GE στο ASC
Οι πόροι της εφαρμογής καταναλώνονται με τον ίδιο τρόπο και αποκτώνται επίσης επίπεδα δεξιοτήτων.
Τώρα, γνωρίζουμε ότι η χρήση της κατανάλωσης δεξιοτήτων μπορεί να τροποποιήσει την ποσότητα μάνα που καταναλώνει μέσω του επιπέδου δεξιοτήτων Μπορούμε να χρησιμοποιήσουμε τον πίνακα για να ορίσουμε διαφορετικά επίπεδα και κατανάλωση μάνα.
Έτσι, δημιουργούμε έναν νέο πίνακα καμπυλών για να ορίσουμε την κατανάλωση μάνα των δεξιοτήτων σε διαφορετικά επίπεδα.
Δημιουργήστε έναν πίνακα καμπυλών, επιλέξτε Constant ως τύπο και ορίστε την κατανάλωση μάνα σε κάθε επίπεδο σε μια σταθερή τιμή.
Ονομάζεται CT_Cost
Προσθέστε εσωτερικά την κατανάλωση μάνα δεξιοτήτων από το επίπεδο 1 στο επίπεδο 10 του Fireball.
Στη συνέχεια, χρησιμοποιήστε τον πίνακα καμπυλών εδώ στο GE, επιλέξτε τη σειρά που δημιουργήθηκε και ορίστε την τιμή σε -1
Στη συνέχεια, τροποποιήστε το αρχικό επίπεδο δεξιοτήτων στον κώδικα για δοκιμή
Μετά την κυκλοφορία ενός skill, το ποσό μάνα είναι τριπλάσιο από πριν, κάτι που αποδεικνύει ότι δεν υπάρχει πρόβλημα με τις ρυθμίσεις.
Η αρχή της ψύξης ικανότητας είναι η εφαρμογή μιας ετικέτας ψύξης στο ASC κατά τη φάση ψύξης Αυτή η ικανότητα δεν μπορεί να χρησιμοποιηθεί ξανά όσο υπάρχει η ετικέτα ψύξης.
Έτσι, θέλουμε να εφαρμόσουμε ψύξη, πρώτα δημιουργήστε μια ετικέτα για την ψύξη
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
Στη συνέχεια εγγραφείτε στον διαχειριστή ετικετών
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
Δημιουργεί μια βολίδα για να κρυώσει το GE
Τροποποιήστε τη GE σε μια χρονικά ευαίσθητη έχει διάρκεια
Όπως μπορείτε να δείτε εδώ, ο χρόνος ψύξης μπορεί να ρυθμιστεί χρησιμοποιώντας τις διάφορες μεθόδους που χρησιμοποιήσαμε για να τροποποιήσουμε την τιμή πριν. Εδώ χρησιμοποιούμε την απλούστερη, ορίζοντας την απευθείας σε 1.
Δεν χρειάζεται να τροποποιήσουμε το περιεχόμενο που σχετίζεται με τους χαρακτήρες. Χρειάζεται μόνο να προσθέσουμε μια ετικέτα ψύξης στο ASC όταν αυτό το GE τεθεί σε ισχύ.
Προσθέστε μια ετικέτα ψύξης στο Actor μέσω αυτού του στοιχείου και προσθέστε την ετικέτα ψύξης που δημιουργήσαμε.
Στη συνέχεια, εφαρμόστε το cooldown στο skill
Εκτελώντας τη δοκιμή, διαπιστώσαμε ότι μπορούμε να απελευθερώσουμε την ικανότητα μόνο μία φορά το δευτερόλεπτο.
Γενικά παράγουμε μόνο μία παρουσία μιας ικανότητας χαρακτήρα για έναν χαρακτήρα Για να αποτρέψουμε την απενεργοποίηση της ικανότητας από τον πελάτη πριν από την ενεργοποίηση της ικανότητας, θα τερματίσουμε τη δεξιότητα όταν τελειώσει το μοντάζ της ικανότητας ή η μίξη. ακυρώθηκε αναγκαστικά και όταν τελειώσει το skill , για να μπορέσετε να συνεχίσετε να παίζετε το μοντάζ.
Πρέπει επίσης να ενεργοποιήσουμε την δυνατότητα Retrigger Instanced, ώστε όταν ενεργοποιηθεί ξανά, να απενεργοποιήσει την προηγούμενη ενεργοποίηση.
Παρακολούθηση: Τώρα έχουμε την κατανάλωση και μπορεί να εμφανιστεί σωστά στο περιβάλλον εργασίας χρήστη, αλλά η ψύξη δεν έχει ακόμη εφαρμοστεί τις αλλαγές στην ικανότητα ψύξης στο μέλλον και να την εμφανίσετε πάνω από τη διεπαφή χρήστη.