Πώς να ενσωματώσετε ένα κινούμενο άλμα με την Unity

Σήμερα τελείωσα το πρώτο κινούμενο άλμα στο Blender, το οποίο θέλησα να ενσωματώσω στην Ενότητα. Νόμιζα ότι θα έπρεπε να κάνω κάτι σαν "Ok όταν πατάω το κουμπί jumping, ενεργοποιώ το κινούμενο άλμα και αυτό είναι!". Δεν είναι καν κοντά!

Το έκανα αυτό και το αποτέλεσμα ήταν ... όχι ακριβώς αυτό που περίμενα.

Είμαι σχεδόν βέβαιος ότι η διαδικασία που περιγράψαμε προηγουμένως θα λειτουργούσε σε ορισμένες συγκεκριμένες περιπτώσεις, αλλά δυστυχώς, όχι στη δική μου.

Έπρεπε να περάσω μια μακρύτερη μέθοδο.

Μια γρήγορη ματιά σε ένα άλμα

Ένα κανονικό άλμα μπορεί να χωριστεί σε τρεις διαφορετικές φάσεις:

  • Η ώθηση του Jump: όταν ο χαρακτήρας μας παίρνει ώθηση και άλμα.
  • Φάση πτώσης: όταν ο χαρακτήρας μας προσπαθεί να παραμείνει σταθερός όσο στον αέρα.
  • Φάση προσγείωσης: όταν ο χαρακτήρας μας, ακόμα στον αέρα, προετοιμάζεται για να φτάσει στο έδαφος.

Πώς λειτουργεί σε ένα παιχνίδι;

Όταν ο παίκτης πιέσει το πλήκτρο διαστήματος (το οποίο είναι προφανώς το κουμπί πτώσης ), ενεργοποιεί το κινούμενο άλμα.

Μόλις ο παίκτης βρεθεί στον αέρα, ξεκινάει μια άλλη κινούμενη εικόνα: η φάση πτώσης που βγαίνει μέχρι να φτάσει στο έδαφος.

Στη συνέχεια ξεκινάει η κινούμενη απεικόνιση προσγείωσης, αλλά με μια λεπτότητα: αν ξεκινήσει αυτή η κινούμενη εικόνα όταν ο χαρακτήρας μόλις έφτασε στο έδαφος, είναι πολύ αργά! Σε αυτή τη φάση γνωρίζουμε ότι πρόκειται να χτυπήσουμε το έδαφος (απλά επειδή μπορούμε να το δούμε). Έτσι, μπορούμε εύκολα να αξιολογήσουμε την απόσταση και να προετοιμαστούμε για την πρόσκρουση ενώ βρίσκεστε στον αέρα.

Ας σκεφτούμε πώς συμπεριφερόμαστε όταν πηδούμε! Όταν βλέπουμε ότι πρόκειται να χτυπήσουμε το έδαφος , προετοιμαζόμαστε για τον "αντίκτυπο". Μπορούμε επειδή έχουμε το όραμα του εδάφους και μπορούμε γρήγορα να αξιολογήσουμε πότε πρέπει να είμαστε προετοιμασμένοι.

Αυτό που λείπει στην περίπτωσή μας είναι κάτι που αξιολογεί την απόσταση του χαρακτήρα μας από το έδαφος! Θα σας εκθέσω μια μέθοδο για να αξιολογήσετε αυτή την απόσταση από το χαρακτήρα στο έδαφος, αλλά σημειώστε ότι υπάρχουν πολλοί άλλοι τρόποι για να το κάνετε αυτό. Μπορεί να χρησιμοποιηθεί σε άλλες μηχανές παιχνιδιών.

Το τέχνασμα είναι να ρίξουμε μια ακτίνα από τον χαρακτήρα μας στην κατεύθυνση της ταχύτητας. Στη συνέχεια, θα μπορέσουμε να ενεργοποιήσουμε το animation προσγείωσης την κατάλληλη στιγμή ακριβώς πριν την φτάσουμε! 🥳

Ετοιμος?

Εφαρμογή με την Ενότητα

Στην Ενότητα, υπάρχει ένα εργαλείο που ονομάζεται Raycast που θα μας δώσει ακριβώς αυτό που θέλουμε.

Προχωρούμε σε δύο βήματα:

  • Στέλνουμε ένα Raycast στην κατεύθυνση της ταχύτητας μας για να καθορίσουμε την απόσταση πριν αγγίξουμε το έδαφος.
  • Αν η ταχύτητά μας στον κάθετο άξονα, y στην Ενότητα, είναι αρνητική (που σημαίνει ότι πέφτουμε) και το έδαφος είναι πολύ κοντά, τότε ενεργοποιούμε το animation προσγείωσης.

Είναι τελειοποιήσιμο, αλλά τώρα που θα περάσουμε στο παιχνίδι, το σενάριο θα ενεργοποιήσει τα κινούμενα σχέδια μας την κατάλληλη στιγμή. Για το άπειρο και πέρα! ️