Εφαρμόστε ανίχνευση χτυπήματος για κάθε τύπο MapChip

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

Περιβάλλον επαλήθευσης

παράθυρα
  • Παράθυρα 11
Επεξεργαστής ενότητας
  • 2021.3.3στ1
Πακέτο συστήματος εισόδου
  • 1.3.0

Προϋποθέσεις για αυτήν τη συμβουλή

Οι ακόλουθες ρυθμίσεις έχουν γίνει εκ των προτέρων ως προϋπόθεση για την περιγραφή αυτής της συμβουλής.

Ποιες είναι οι προϋποθέσεις για αυτήν την συμβουλή;

Σχετικά με το δανεισμό υλικού χαρτών

Επεξεργαζόμαστε δανεισμό από τους ακόλουθους ιστότοπους.

Αρχικά

Αυτή τη φορά, MapChips τοποθετούνται σε ένα TileMap, και αποφασίζεται αν θα εκτελέσει προσδιορισμό χτύπημα ανάλογα με τον τύπο του MapTip τοποθετηθεί.

Δεδομένου ότι αυτή η συμβουλή είναι σε μεγάλο βαθμό η ίδια με μια άλλη συμβουλή "Εφαρμογή ανίχνευσης χτυπήματος με tilemaps", Ανατρέξτε εκεί για μια λεπτομερή εξήγηση. Εδώ, εξηγείται μόνο η διαδικασία για το ίδιο περιεχόμενο και προστίθενται μόνο οι διαφορές.

Εφαρμογή χαρακτήρων πεζοπορίας

Αρχικά, προετοίμασε μια εικόνα αντικειμένου που θα ελέγχει ο παίκτης για να εκτελέσει τη λειτουργία ανίχνευσης χτυπήματος και πρόσθεσε την στο έργο σου. Αυτή τη φορά, το μέγεθος του maptip είναι 32 pixel, οπότε θα κάνω την εικόνα το ίδιο μέγεθος.

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

Επιλέξτε την εικόνα που προσθέσατε στο έργο σας. Δεδομένου ότι θέλουμε να ταιριάξουμε τη μονάδα με το τσιπ χάρτη, ορίστε τον "Αριθμό εικονοστοιχείων ανά μονάδα" σε "32".

Μόλις ρυθμιστεί, κάντε κλικ στο κουμπί "Εφαρμογή" παρακάτω.

Μόλις ρυθμιστεί η εικόνα, αποθέστε την εικόνα στην προβολή και προσθέστε το αντικείμενο.

Ορίστε τη διαδικασία κίνησης του χαρακτήρα. Προσθέστε το σενάριο και αφήστε το με το όνομα Player .

Το σενάριο μοιάζει με αυτό: Αυτή είναι μια απλή διαδικασία κίνησης που μετακινεί το αντικείμενο με το πληκτρολόγιο.

using UnityEngine;
using UnityEngine.InputSystem;

public class Player : MonoBehaviour
{
  // 一定時間ごとに呼ばれます
  void FixedUpdate()
  {
    // キーボードの情報を取得
    var keyboard = Keyboard.current;

    // スプライトの移動処理
    if (keyboard.leftArrowKey.isPressed)
    {
      transform.Translate(-0.1f, 0, 0, Space.World);
    }
    if (keyboard.rightArrowKey.isPressed)
    {
      transform.Translate(0.1f, 0, 0, Space.World);
    }
    if (keyboard.upArrowKey.isPressed)
    {
      transform.Translate(0, 0.1f, 0, Space.World);
    }
    if (keyboard.downArrowKey.isPressed)
    {
      transform.Translate(0, -0.1f, 0, Space.World);
    }
  }
}

Η δέσμη ενεργειών που δημιουργείτε συνδέεται με το αντικείμενο χαρακτήρα.

Εκτελέστε το παιχνίδι και ελέγξτε αν ο χαρακτήρας κινείται με το πληκτρολόγιο.

Προετοιμασία MapTips

Προετοιμάστε μια εικόνα maptip και προσθέστε την στο έργο σας. Καθώς ο αριθμός των τσιπ χάρτη αυξάνεται, η ρύθμιση γίνεται ενοχλητική, οπότε αυτή τη φορά έχουμε ετοιμάσει μόνο δύο τετράγωνα, ένα που μπορεί να περπατήσει και ένα που δεν μπορεί να περπατήσει.

Επιλέξτε τις εικόνες που προσθέσατε στο έργο σας και διαμορφώστε τις ρυθμίσεις για το MapChips. Ανατρέξτε στις παρακάτω συμβουλές για περισσότερες πληροφορίες:

Μόλις ρυθμιστεί, κάνε κλικ στο κουμπί Apply και, στη συνέχεια, στο κουμπί Sprite Editor.

Διαίρεση με 32 pixel.

Επιλέξτε την καρτέλα Παλέτα πλακιδίων για να δημιουργήσετε μια παλέτα. Εάν δεν υπάρχουν καρτέλες, μπορείτε να τις εμφανίσετε από το μενού με "Window > 2D -> Tile Palette". Το όνομα της παλέτας μπορεί να είναι οτιδήποτε, αλλά εδώ είναι "MapChipPalette".

Δεδομένου ότι θα το αποθηκεύσουμε σε ένα φάκελο, δημιουργήστε έναν νέο φάκελο "MapChipPalette" στο φάκελο Scene και καθορίστε τον.

Ένας φάκελος MapChipPalette έχει προστεθεί στο έργο.

Στη συνέχεια, θα προσθέσετε MapTips στην παλέτα. Σύρετε και αποθέστε τη διαχωρισμένη εικόνα maptip στην παλέτα.

MapTips έχουν προστεθεί στην παλέτα.

Δημιουργία χάρτη

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

Μόλις προστεθεί, επιλέξτε Tilemap. Η προβολή εμφανίζει ένα πλέγμα.

Αρχικά, ορίστε ένα mapchip που δεν γίνεται τοίχος στην προβολή.

Προς το παρόν, το έβαλα παντού.

Στη συνέχεια, τοποθετήστε το πέτρινο maptip που θα χρησιμεύσει ως τοίχος.

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

Φυσικά, ακόμα κι αν μετακινήσετε το παιχνίδι σε αυτό το σημείο, θα γλιστρήσετε μέσα από τον τοίχο και θα περπατήσετε.

MapChip χτυπήσει ρυθμίσεις ανίχνευσης

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

Υπάρχει ένα maptip που έχει οριστεί στην παλέτα μέσα, οπότε πρώτα επιλέξτε ένα maptip στο οποίο μπορείτε να περπατήσετε.

Από το εργαλείο επιθεώρησης, ορίστε την τιμή Τύπος επιταχυντή (Collider Type) σε Καμία. Αργότερα, θα προσθέσετε μια ρύθμιση ανίχνευσης σύγκρουσης στο Tilemap, αλλά η ρύθμιση σε "Καμία" θα αποτρέψει τη σύγκρουση αυτού του mapchip.

Η άλλη πέτρινη άκρη χάρτη έχει οριστεί σε "Πλέγμα". Δεδομένου ότι δεν είναι ένα διαφανές maptip αυτή τη φορά, δεν υπάρχει πρόβλημα με το "sprite", αλλά αν το ορίσετε σε "sprite", δεν θα κριθεί πατώντας το διαφανές μέρος της εικόνας.

Αυτό είναι το μόνο που υπάρχει για να MapTip. Είναι εύκολο γιατί υπάρχουν μόνο δύο από αυτά αυτή τη φορά, αλλά αν έχετε μεγάλο αριθμό τσιπ χάρτη, πρέπει να ρυθμίσετε τόσο πολύ.

Ρυθμίσεις ανίχνευσης σύγκρουσης

Από εδώ, είναι σχεδόν το ίδιο με το περιεχόμενο του "Εφαρμογή ανίχνευσης χτυπήματος με tilemap".

Αρχικά, κάντε τις απαραίτητες ρυθμίσεις για την ανίχνευση σύγκρουσης χαρακτήρων. Προσθέστε το "Physics 2D -> Circle Collider 2D" ως στοιχείο. Αυτή τη φορά, το αντικείμενο είναι στρογγυλό, οπότε το έκανα Κύκλο, αλλά παρακαλώ επιλέξτε Κουτί ή Κάψουλα ανάλογα με το σχήμα.

Θα προσθέσουμε επίσης το "Physics 2D -> Rigidbody 2D".

Ρυθμίστε την κλίμακα βαρύτητας στο 0 για να αποτρέψετε την πτώση της βαρύτητας. Επίσης, έλεγξε το Z για «Διόρθωση περιστροφής» για να αποτρέψεις την περιστροφή του αντικειμένου.

Για το Tilemap, προσθέστε το στοιχείο Tilemap -> Tilemap Collider 2D.

Μπορείτε να δείτε ότι έχει προστεθεί μια πράσινη γραμμή γύρω από το πέτρινο maptip στη θέα. Αυτό σημαίνει ότι η ανίχνευση χτυπήματος έχει οριστεί μόνο για πέτρες. Μπορείτε να δείτε ότι αντικατοπτρίζεται η ρύθμιση τύπου επιταχυντή του maptip στην παραπάνω παλέτα.

Δοκιμάστε να τρέξετε το παιχνίδι και να περπατήσετε προς τον τοίχο. Νομίζω ότι μπορείτε να βεβαιωθείτε ότι ο χαρακτήρας σταματά σωστά μπροστά από τον τοίχο. Μπορείτε να δείτε ότι μπορεί εύκολα να εφαρμοστεί χωρίς να γράψετε προγράμματα που σχετίζονται με την ανίχνευση χτυπήματος.

Συνδυάζοντας την ανίχνευση χτυπήματος MapChip

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

Ωστόσο, συνδυάζοντας το τμήμα ανίχνευσης χτυπήματος του τσιπ χάρτη, η περίεργη συμπεριφορά θα διορθωθεί και το φορτίο επεξεργασίας θα μειωθεί ταυτόχρονα, οπότε ας το κάνουμε τουλάχιστον.

Πρώτα, ελέγξτε "Χρήση σε σύνθετο" στο Tilemap Collider 2D.

Στην περιοχή Προσθήκη στοιχείου, επιλέξτε Physics 2D -> Composite Collider 2D.

Θα προστεθεί επίσης το "Rigidbody 2D", οπότε κάντε το "Body Type" σε "Static".

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

Τώρα εκτελέστε το παιχνίδι και βεβαιωθείτε ότι λειτουργεί σωστά.