Πίνακας περιεχομένων:

Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino: 6 βήματα
Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino: 6 βήματα

Βίντεο: Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino: 6 βήματα

Βίντεο: Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino: 6 βήματα
Βίντεο: Εγκατάσταση Windows 10 σε Νέο Υπολογιστή 2024, Ιούλιος
Anonim
Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino
Πώς να φτιάξετε ένα παιχνίδι για πολλούς παίκτες με ελεγκτές Arduino

Έχετε αναρωτηθεί ποτέ πώς οι προγραμματιστές παιχνιδιών δημιουργούν εκπληκτικά παιχνίδια που οι άνθρωποι σε όλο τον κόσμο απολαμβάνουν να παίζουν; Λοιπόν, σήμερα θα σας δώσω μια μικρή υπόδειξη σχετικά με αυτό κάνοντας ένα μικρό παιχνίδι για πολλούς παίκτες που θα ελέγχεται είτε από ένα χειριστήριο Arduino που θα φτιάξετε επίσης. Λοιπόν, ας ξεκινήσουμε.

Προμήθειες

Θα χρειαστείτε:

  • Ενα λάπτοπ
  • Unity Engine
  • Ένα C# IDE που λειτουργεί με την Unity όπως το visual studio ή το Atom. (Θα χρησιμοποιήσω Visual Studio Code)
  • 2X Arduino Nano
  • 2Χ Μεγάλη σανίδα ψωμιού
  • 2X Μικρή σανίδα ψωμιού
  • 4X Tack Switch (Κουμπί ώθησης)
  • Αντίσταση 4Χ 200Ω
  • 12X Male to Male Jumper Wires
  • Arduino IDE

Θα είναι χρήσιμο εάν έχετε μια βασική κατανόηση της χρήσης της Unity, ωστόσο δεν θα επηρεάσει την πρόοδό σας καθώς θα εξοικειωθείτε με αυτό ενώ συνεχίζετε να φτιάχνετε το παιχνίδι.

Σύνδεσμος για τη λήψη του Unity Engine:

store.unity.com/download-nuo

Σύνδεσμος για λήψη του Visual Studio Code IDE:

code.visualstudio.com/download

Σύνδεσμος για λήψη του Arduino IDE:

www.arduino.cc/en/Main/Software

Βήμα 1: Ρυθμίστε τα σύνορα του παιχνιδιού

Ρυθμίστε τα σύνορα του παιχνιδιού
Ρυθμίστε τα σύνορα του παιχνιδιού
Ρυθμίστε τα σύνορα του παιχνιδιού
Ρυθμίστε τα σύνορα του παιχνιδιού
Ρυθμίστε τα σύνορα του παιχνιδιού
Ρυθμίστε τα σύνορα του παιχνιδιού

Πρώτα απ 'όλα, πρέπει να κατεβάσετε την ενότητα

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

Ανοίξτε ένα νέο έργο Unity, ονομάστε το και επιλέξτε 2D παιχνίδι.

Όταν ανοίξει το έργο, παρατηρήστε ότι υπάρχουν 3 κύριες ενότητες που ονομάζονται

  • Ιεραρχία (εδώ θα προστεθούν όλα τα αντικείμενα και οι λεπτομέρειες του παιχνιδιού σας).
  • Σκηνή (όπου ρυθμίζετε την προβολή του παιχνιδιού).
  • Παιχνίδι (όπου μπορείτε να δοκιμάσετε πώς θα είναι το πραγματικό παιχνίδι).

Παρατηρήστε ότι κάτω από την ιεραρχία υπάρχει η σκηνή σας και κάτω από τη σκηνή υπάρχει η "Κύρια Κάμερα". Όταν επιλέγετε την κάμερα από την ιεραρχία, θα επιλεγεί στη σκηνή

(Οτιδήποτε εντός των ορίων αυτής της κάμερας θα εμφανιστεί στο πραγματικό παιχνίδι).

Δείτε την εικόνα 1

Το παιχνίδι μας αποτελείται από δύο σανίδες, μια μπάλα που κινείται και περιγράμματα που περιορίζουν την κίνηση των σανίδων και της μπάλας.

Ας ξεκινήσουμε δημιουργώντας τα σύνορα.

  1. Για να δημιουργήσετε ένα νέο αντικείμενο παιχνιδιού, επιλέξτε Assets> Create> Sprites> square (ονομάστε το "δεξιά και αριστερά σύνορα") Δείτε την εικόνα 2
  2. Σύρετε και αφήστε δεξιά και αριστερά σύνορα στην ιεραρχία και ένα τετράγωνο θα εμφανιστεί στη σκηνή.
  3. Προσαρμόστε τη θέση του άξονα x σε (5) "δεξιά και αριστερά σύνορα"> επιθεωρητής> μετασχηματισμός> θέση> Χ. Δείτε την εικόνα 3
  4. Στη συνέχεια, προσαρμόστε την κλίμακα της ώστε να είναι αρκετά μεγάλη ώστε να καλύπτει τα περιθώρια της κάμερας (σύρετε την επάνω και κάτω πλευρά του τετραγώνου για να την τεντώσετε).
  5. Προσαρμόστε το χρώμα του "από δεξιά και αριστερά σύνορα"> επιθεωρητής> sprite απόδοση> χρώμα. Δείτε την εικόνα 3
  6. Μετακινηθείτε προς τα κάτω στον επιθεωρητή και επιλέξτε προσθήκη στοιχείου, πληκτρολογήστε Rigidbody2D και πατήστε enter, αυτό θα προσθέσει βασικά τη φυσική στο αντικείμενο του παιχνιδιού σας καθώς του δίνει μάζα, βαρύτητα και ανίχνευση σύγκρουσης. Ωστόσο, δεν χρειαζόμαστε βαρύτητα στο παιχνίδι μας, οπότε κάντε τη βαρύτητα 0 αντί για 1. Θα χρειαστεί επίσης να παγώσετε τη θέση και την περιστροφή, ώστε να μην μετακινηθεί το περίγραμμα όταν συγκρουστεί. Δείτε την εικόνα 4
  7. επιλέξτε προσθήκη στοιχείου και πληκτρολογήστε Box Collider 2D και πατήστε enter για να προσθέσετε μια περιοχή γύρω από το αντικείμενο του παιχνιδιού όπου μπορούν να εντοπιστούν συγκρούσεις. Δείτε την εικόνα 4
  8. Τώρα επιλέξτε δεξιά και αριστερά περιθώρια και πατήστε (ctrl+d) για να το αντιγράψετε.
  9. Μετονομάστε το "αριστερά σύνορα" και μετονομάστε το πρώτο ("δεξί περίγραμμα").
  10. Επιλέξτε το αριστερό περίγραμμα και ρυθμίστε τη θέση του άξονα x σε (-5) με τον ίδιο τρόπο στο βήμα 3. Τώρα έχετε δεξιά και αριστερά σύνορα.

Επαναλάβετε τα προηγούμενα 10 βήματα με τα πάνω και κάτω όρια και αλλάξτε τη θέση y του τετραγώνου αντί για τη θέση x. Η τελική προεπισκόπηση πρέπει να είναι κάτι παρόμοιο με αυτό της εικόνας.

Δείτε την εικόνα 5

Βήμα 2: Προσθήκη πινάκων και κατασκευή ελεγκτών

Προσθήκη πινάκων και κατασκευή ελεγκτών
Προσθήκη πινάκων και κατασκευή ελεγκτών
Προσθήκη πινάκων και κατασκευή ελεγκτών
Προσθήκη πινάκων και κατασκευή ελεγκτών
Προσθήκη πινάκων και κατασκευή ελεγκτών
Προσθήκη πινάκων και κατασκευή ελεγκτών

Προσθήκη πινάκων

Δημιουργήστε ένα νέο αντικείμενο παιχνιδιού και ονομάστε το player 1.

Προσαρμόζω:

  • Κλίμακα: Χ (1,2), Υ (0,15), Ζ (1)
  • Θέση: X (0), Y (-3,6), z (0)
  • Προσθέστε το BoxCollider2D
  • Προσθέστε το Rigidbody 2D και παγώστε τους άξονες y και z.

Διπλότυπο (ctrl+d) και μετονομάστε το πρόγραμμα αναπαραγωγής αντιγράφων 2.

Προσαρμόζω:

  • Κλίμακα: Χ (1,2), Υ (0,15), Ζ (1)
  • Θέση: X (0), Y (3.6), z (0)
  • Ένα BoxCollider θα είναι ήδη εκεί.
  • Ένα Rigidbody 2D θα είναι ήδη εκεί και οι άξονες y και z θα έχουν ήδη παγώσει.

Δείτε την εικόνα 1

Κατασκευή ελεγκτών

Θα χρειαστείτε:

  • 2X Arduino Nano
  • 2Χ Μεγάλη σανίδα ψωμιού
  • 2X Μικρή σανίδα ψωμιού
  • 4X Tack Switch (Push Button)
  • Αντίσταση 4Χ
  • 12X Male to Male Jumper Wires

Τώρα κοιτάξτε τις φωτογραφίες και τη χαρτογράφηση του πίνακα ψωμιού για να συναρμολογήσετε τα χειριστήρια.

  1. Συνδέστε ένα τσιπ Arduino Nano με μια μικρή σανίδα ψωμιού.
  2. επισυνάψτε 2 διακόπτες Tack στη μεγάλη σανίδα ψωμιού όπως φαίνεται στην εικόνα. Προσπαθήστε να κρατήσετε τη δεξιά πλευρά της σανίδας ψωμιού συμμετρική με την αριστερή, καθώς αυτό θα κάνει το χειριστήριο να φαίνεται καλύτερο (Μπορείτε να χρησιμοποιήσετε τη στήλη 30 ως συμμετρία γραμμή)
  3. Συνδέστε τον επάνω αριστερό πείρο του αριστερού κουμπιού με τον πείρο 5V στο Arduino στη μικρή σανίδα ψωμιού (τα πράγματα που συνδέονται με την ίδια στήλη στο breadboard συνδέονται μεταξύ τους).
  4. Συνδέστε την επάνω δεξιά ακίδα του δεξιού κουμπιού με τον πείρο 5V στο Arduino.
  5. Συνδέστε την κάτω δεξιά ακίδα του αριστερού κουμπιού με ένα σημείο στην 31η στήλη χρησιμοποιώντας μια αντίσταση.
  6. Συνδέστε τον κάτω αριστερό πείρο του δεξιού κουμπιού με ένα σημείο στην 29η στήλη χρησιμοποιώντας μια αντίσταση.
  7. Συνδέστε τις αντιστάσεις με τον πείρο GND στο Arduino.
  8. Συνδέστε την επάνω δεξιά ακίδα του αριστερού κουμπιού με τον ακροδέκτη D3 στο Arduino.
  9. Συνδέστε τον επάνω αριστερό πείρο του δεξιού κουμπιού με τον πείρο D9 στο Arduino.
  10. Τώρα επαναλάβετε αυτά τα βήματα και κάντε το δεύτερο χειριστήριο.

Βήμα 3: Σύνδεση του Arduino στη σειριακή θύρα

Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα
Σύνδεση του Arduino στη σειριακή θύρα

Πρώτα θα χρειαστεί να εγκαταστήσετε το Arduino IDE.

Μόλις εγκατασταθούν, μπορείτε να ξεκινήσετε κάνοντας ένα πρόγραμμα Arduino που λαμβάνει εισόδους από τα κουμπιά και να τα αποθηκεύετε σε σειριακή θύρα (θύρα COM). Όταν ένας πίνακας Arduino είναι συνδεδεμένος στο φορητό υπολογιστή σας, το λειτουργικό σύστημα αναγνωρίζει αυτόματα τον πίνακα ως σειριακή θύρα, στην οποία μπορούν να μεταφορτωθούν προγράμματα. Οι τιμές που είναι αποθηκευμένες στη σειριακή θύρα μπορούν να χρησιμοποιηθούν στο επόμενο βήμα όταν συνδέσουμε το Unity Engine με τη σειριακή θύρα.

Τώρα ας συνδέσουμε το Arduino με τη σειριακή θύρα.

Δείτε τις φωτογραφίες

  1. Συνδέστε ένα Arduino με το φορητό υπολογιστή σας
  2. Εργαλεία> Πίνακας> Arduino Nano
  3. Εάν το τσιπ Arduino σας είναι πρόσφατο (2018-2020) Εργαλεία> Επεξεργαστής> ATmega328P (Old Bootloader).
  4. Εάν το τσιπ Arduino σας δεν είναι πρόσφατο (πριν από το 2018) Εργαλεία> Επεξεργαστής> ATmega328P
  5. Εργαλεία> Θύρα> COM (όποιος αριθμός εμφανίζεται, στην περίπτωσή μου είναι 10). * Αυτή είναι η σειριακή θύρα όπου θα αποθηκευτούν οι τιμές.
  6. Αντιγράψτε τον κώδικα και επικολλήστε τον στο Arduino IDE και πατήστε ctrl+u για να ανεβάσετε το πρόγραμμα.
  7. Επαναλάβετε με το δεύτερο Arduino. (όταν κάνετε το βήμα 5, βεβαιωθείτε ότι έχετε επιλέξει άλλη θύρα COM, ώστε και οι δύο ελεγκτές να μην είναι συνδεδεμένοι στην ίδια σειριακή θύρα).

Κώδικας:

void setup () {

Serial.begin (9600); pinMode (3, ΕΙΣΟΔΟΣ); // Λέγοντας στο Arduino να λάβει μια είσοδο από τον ακροδέκτη D3 pinMode (9, INPUT). // Λέγοντας στο Arduino να λάβει μια είσοδο από τον πείρο D9} void loop () {if (digitalRead (3) == 1) { /* Εάν το Arduino λάβει μια είσοδο 1 Serial.write (1); από τον ακροδέκτη 3 Εξάγετε μια τιμή 1 στη σειριακή θύρα Serial.flush (); */ καθυστέρηση (2) } if (digitalRead (9) == 1) { /* Εάν το Arduino λάβει μια είσοδο 1 Serial.write (2); από τον πείρο 9 Έξοδος τιμής 2 στη σειριακή θύρα Serial.flush (); */ καθυστέρηση (2) }}

Επεξήγηση προγράμματος:

Αυτός ο κώδικας παίρνει απλώς μια είσοδο από τον ακροδέκτη D3 και τον ακροδέκτη D9 στο Arduino, τα οποία είναι συνδεδεμένα με τα κουμπιά. Τα κουμπιά είναι είτε πατημένα είτε μη συμπιεσμένα, πράγμα που σημαίνει ότι οι ενδείξεις που λαμβάνονται από αυτές είναι είτε 1 (πατημένες) είτε 0 (μη συμπιεσμένες). Εάν η είσοδος από το δεξί κουμπί (από το D9) είναι 1 (πατημένο) αποθηκεύστε μια τιμή 1 στη σειριακή θύρα. Εάν η είσοδος από το αριστερό κουμπί (από το D3) είναι 1 (πατημένο) αποθηκεύστε μια τιμή 2 στη σειριακή θύρα.

Βήμα 4: Σύνδεση της ενότητας με τη σειριακή θύρα

Σύνδεση της ενότητας με τη σειριακή θύρα
Σύνδεση της ενότητας με τη σειριακή θύρα
Σύνδεση της ενότητας με τη σειριακή θύρα
Σύνδεση της ενότητας με τη σειριακή θύρα

Για αυτό το βήμα, πρόκειται να προσδιορίσουμε τη σειριακή θύρα της Unity, ώστε να μπορεί να λαμβάνει τις εισόδους από το Arduino όταν πατήσετε τα κουμπιά. Εγκαταστήστε το Visual Studio Code στον φορητό υπολογιστή σας. Στη συνέχεια, μεταβείτε στην ενότητα, επιλέξτε το πρόγραμμα αναπαραγωγής 1 από την ιεραρχία, μετακινηθείτε προς τα κάτω και επιλέξτε προσθήκη στοιχείου και πληκτρολογήστε player1_motion και πατήστε enter. Δείτε την εικόνα 1

Ένα σενάριο C# θα δημιουργηθεί στον επιθεωρητή, κάντε δεξί κλικ πάνω του και επιλέξτε επεξεργασία σεναρίου, ο κώδικας του visual studio πρέπει να ανοίξει και θα εμφανίσει έναν προεπιλεγμένο κώδικα που μοιάζει με την εικόνα 2.

Αντιγράψτε τον ακόλουθο κώδικα και μετά αλλάξτε "SerialPort sp = new SerialPort (" COM10 ", 9600);" με SerialPort sp = νέο SerialPort ("Θύρα COM στην οποία είναι συνδεδεμένο το Arduino", 9600); μπορείτε να το βρείτε πηγαίνοντας πίσω στον κώδικα Arduino και επιλέγοντας Εργαλεία> Θύρα> COM (όποιος αριθμός εμφανίζεται).

Κώδικας:

χρησιμοποιώντας System. Collections;

χρησιμοποιώντας System. Collections. Generic; χρησιμοποιώντας το UnityEngine. χρησιμοποιώντας System. IO. Ports. public class player1_motion: MonoBehaviour {float speed = 8; private float amounttomove? SerialPort sp = νέο SerialPort ("COM10", 9600); // Έναρξη καλείται πριν από την πρώτη ενημέρωση πλαισίου void Έναρξη () {sp. Open (); sp. ReadTimeout = 1; } // Η ενημέρωση καλείται μία φορά ανά πλαίσιο void Update () {amounttomove = speed*0.01f; if (sp. IsOpen) {try {moveObject (sp. ReadByte ()); εκτύπωση (sp. ReadByte ()); } catch (System. Exception) {}}} void moveObject (int Direction) {if (Direction == 1) {transform. Translate (Vector3.left*amounttomove, Space. World); } if (Direction == 2) {transform. Translate (Vector3.right*amounttomove, Space. World); }}}

Επεξήγηση κώδικα:

Αυτός ο κώδικας λέει στην ενότητα να λαμβάνει εισόδους από τη σειριακή θύρα (COM 10). Όταν πατηθεί το αριστερό κουμπί, το Arduino στέλνει μια τιμή 1 στη σειριακή θύρα, εάν η μονάδα λάβει 1 από τη σειριακή θύρα, προστίθεται μια ταχύτητα στο αντικείμενο παιχνιδιού "player 1" προς την αριστερή κατεύθυνση. Όταν πατηθεί το δεξί κουμπί, το Arduino στέλνει μια τιμή 2 στη σειριακή θύρα, εάν η μονάδα λάβει 2 από τη σειριακή θύρα, προστίθεται μια ταχύτητα στο αντικείμενο παιχνιδιού "player 1" προς τη σωστή κατεύθυνση. Εάν η σειριακή θύρα δεν λάβει τιμή από τη σειριακή θύρα, δεν προστίθεται ταχύτητα προς καμία κατεύθυνση, επομένως, ο πίνακας παραμένει ακίνητος.

Αφού αντιγράψετε τον κωδικό, πατήστε F5 για να δημιουργήσετε και να εκτελέσετε τον κώδικα. Επιστρέψτε στην ενότητα και πατήστε το κουμπί αναπαραγωγής, η συσκευή αναπαραγωγής 1 πρέπει να μετακινείται δεξιά όταν πατάτε δεξιά και αριστερά όταν πατάτε αριστερά.

Τώρα, κάντε τα ίδια βήματα για άλλη μια φορά, αλλά με τη συσκευή αναπαραγωγής 2 και φροντίστε να γράψετε στο «Προσθήκη στοιχείου» player2_motion αντί για player1_motion και να προσδιορίσετε τη δεύτερη θύρα COM στην οποία είναι συνδεδεμένος ο δεύτερος ελεγκτής και όχι η ίδια σειριακή θύρα.

Θα χρειαστεί επίσης να αλλάξετε το "public class player1_motion: MonoBehaviour" σε "public class player2_motion: MonoBehaviour" στον ίδιο τον κώδικα.

Βήμα 5: Προσθήκη της μπάλας

Προσθήκη της μπάλας
Προσθήκη της μπάλας
Προσθήκη της μπάλας
Προσθήκη της μπάλας
Προσθήκη της μπάλας
Προσθήκη της μπάλας
  1. Προσθέστε ένα νέο αντικείμενο παιχνιδιού, αλλά αυτή τη φορά επιλέξτε έναν κύκλο αντί για τετράγωνο.
  2. Μετονομάστε το σε "μπάλα".
  3. Σύρετε και αποθέστε στην ιεραρχία.
  4. Ρυθμίστε την κλίμακα (Χ: 0,2 - Υ: 0,2 - Ζ: 0,2).
  5. Προσθέστε ένα Rigidbody 2D και παγώστε μόνο τον άξονα Ζ.
  6. Αλλάξτε τη μάζα σε 0,0001
  7. Αλλάξτε την κλίμακα βαρύτητας σε 0.
  8. Προσθέστε ένα Collider Box 2D.
  9. Μεταβείτε στα Στοιχεία> Δημιουργία> Υλικό φυσικής 2D Δείτε την εικόνα 1
  10. αλλάξτε το όνομά του σε "αναπήδηση"
  11. Αλλάξτε την τριβή στο μηδέν από τον επιθεωρητή
  12. Αλλάξτε την ευελιξία σε 1 από τον επιθεωρητή
  13. Σύρετε και αποθέστε το "bounce" στο Rigidbody 2D> Material Δείτε την εικόνα 2
  14. Επιλέξτε ξανά "μπάλα" από την ιεραρχία και μεταβείτε στην προσθήκη στοιχείου και πληκτρολογήστε Ball_movement και πατήστε enter.
  15. Κάντε δεξί κλικ στο σενάριο και επιλέξτε επεξεργασία σεναρίου.
  16. Αντιγράψτε τον παρακάτω κώδικα και πατήστε F5 για να τον δημιουργήσετε και να τον εκτελέσετε.

Κώδικας:

χρησιμοποιώντας System. Collections;

χρησιμοποιώντας System. Collections. Generic; χρησιμοποιώντας το UnityEngine. δημόσια τάξη Ball_movement: MonoBehaviour {// Start καλείται πριν από την πρώτη ενημέρωση πλαισίου private float force = 2; void Start () {StartCoroutine (move ()); } IEnumerator move () {yield return new WaitForSeconds (2); GetComponent (). AddForce (νέο Vector2 (1f, 0.5f)*0.02f*δύναμη); }}

Επεξήγηση κώδικα

Αυτός ο κωδικός δίνει στην μπάλα ταχύτητα και προς τις δύο κατευθύνσεις προς την κατεύθυνση Χ και την κατεύθυνση Υ με το ίδιο μέγεθος, γεγονός που κάνει την μπάλα να κινείται σε γωνία 45 °. Στο βήμα 8 προσθέσαμε ένα υλικό φυσικής στην μπάλα και αλλάξαμε την ευελιξία της, αυτό διατηρεί την κίνηση της μπάλας έξω από το παιχνίδι.

Βήμα 6: Ολοκλήρωση του παιχνιδιού

Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού
Ολοκλήρωση του Παιχνιδιού

Τώρα πρέπει να κάνουμε δυνατή την ήττα, αν τρέξετε το παιχνίδι θα παρατηρήσετε ότι όταν η μπάλα περάσει τον παίκτη 1 ή τον παίκτη 2, απλά αναπηδά από τα σύνορα και αυτό δεν είναι ακριβώς αυτό που χρειαζόμαστε στο παιχνίδι μας. Αντ 'αυτού, θέλουμε να κάνουμε έναν μετρητή βαθμολογίας που μετράει το σκορ κάθε φορά που η μπάλα συγκρούεται με τα πάνω ή τα κάτω σύνορα και να επαναφέρουμε τη θέση της μπάλας.

  1. Σύρετε και ρίξτε τη μπάλα από την Ιεραρχία στο Project, Έχετε κάνει μια προκατασκευή της μπάλας, ώστε να μπορείτε να τη χρησιμοποιήσετε αργότερα.
  2. Κάντε δεξί κλικ στην Ιεραρχία και επιλέξτε Δημιουργία Κενού. θα εμφανιστεί ένα άδειο Αντικείμενο, θα το μετονομάσει σε μπάλα που αναπαράγεται και θα αλλάξει τη θέση του ώστε να είναι ίδια με τη θέση της μπάλας.
  3. Κάντε δεξί κλικ στην ιεραρχία και επιλέξτε UI >> Text. Παρατηρήστε ότι το κείμενο συνοδεύει έναν καμβά, η θέση του κειμένου στο παιχνίδι εξαρτάται από τη θέση του κειμένου στον καμβά, όχι στα όρια του παιχνιδιού μας. (Δείτε την εικόνα 1).
  4. Αλλάξτε τη θέση του κειμένου όπου θέλετε.
  5. Επαναλάβετε τα βήματα 3 και 4 ξανά για το σκορ του δεύτερου παίκτη.
  6. Πληκτρολογήστε το πρώτο κείμενο "Player 1 Score: 0" και πληκτρολογήστε το δεύτερο κείμενο "Player 2 Score: 0". (Δείτε την εικόνα 2).
  7. Δημιουργήστε ένα σενάριο στο επάνω περίγραμμα που ονομάζεται p1wins και αντιγράψτε τον ακόλουθο κώδικα.

Κώδικας:

χρησιμοποιώντας System. Collections;

χρησιμοποιώντας System. Collections. Generic; χρησιμοποιώντας το UnityEngine. χρησιμοποιώντας το UnityEngine. SceneManagement; χρησιμοποιώντας το UnityEngine. UI; δημόσια τάξη p1 κερδίζει: MonoBehaviour {δημόσια βαθμολογία κειμένου; public Transform ball_respawn; δημόσια μπάλα GameObject? ιδιωτικό int p1 = 0; // Έναρξη καλείται πριν από την πρώτη ενημέρωση πλαισίου void Εκκίνηση () {} // Η ενημέρωση καλείται μία φορά ανά κενό πλαίσιο Ενημέρωση () {score.text = "Βαθμολογία παίκτη 1:" + p1; } void OnCollisionEnter2D (Collision2D other) {if (other.gameObject.tag == "Ball") {Destroy (other.gameObject); p1 ++; Instantiate (μπάλα, ball_respawn.position, ball_respawn.rotation) · }}}

8. Σύρετε και αποθέστε το προκάτ της μπάλας από το έργο στο βήμα 1 στην παράμετρο Ball. (Δείτε την εικόνα 3)

9. Σύρετε και αποθέστε την μπάλα που αναπαράγεται από την ιεραρχία στην παράμετρο Ball-rerspawn. (Δείτε την εικόνα 3)

10. σύρετε και αποθέστε βαθμολογία παίκτη 1 από την ιεραρχία στην παράμετρο Βαθμολογία. (Δείτε την εικόνα 3)

Επεξήγηση κώδικα:

Όταν η μπάλα συγκρούεται με το άνω όριο καταστρέφεται και ξαναζωντανεύει στη θέση ball_respawn που ορίσαμε στο βήμα 2. Ο στόχος να γίνει η μπάλα σαν προκατασκευή είναι να μπορέσουμε να την ξαναζωντανέψουμε με όλα τα χαρακτηριστικά της, διαφορετικά, αν χρησιμοποιήσαμε τη μπάλα από την ιεραρχία θα αναπαραχθεί αλλά δεν θα κινηθεί. Επίσης, όταν η μπάλα συγκρούεται με το άνω όριο, μια τιμή που είναι αρχικά ίση με 0 που ονομάζεται p1 αυξάνεται κατά 1. αυτή η τιμή εμφανίζεται ως κείμενο, οπότε όταν η μπάλα συγκρούεται με το άνω όριο η βαθμολογία για τον παίκτη 1 αυξάνεται κατά 1.

Τώρα κάντε τα βήματα 7, 8, 9 και 10 για το κάτω όριο

για το βήμα 7, δημιουργήστε ένα σενάριο που ονομάζεται p2wins και αντιγράψτε τον ακόλουθο κώδικα.

για το βήμα 10, σύρετε και αποθέστε το σκορ παίκτη 2 από την ιεραρχία στην παράμετρο Βαθμολογία.

Κώδικας:

χρησιμοποιώντας System. Collections;

χρησιμοποιώντας System. Collections. Generic; χρησιμοποιώντας το UnityEngine. χρησιμοποιώντας το UnityEngine. SceneManagement; χρησιμοποιώντας το UnityEngine. UI; δημόσια τάξη p2 κερδίζει: MonoBehaviour {δημόσια βαθμολογία κειμένου; public Transform ball_respawn; δημόσια μπάλα GameObject? ιδιωτικό int p2 = 0; // Έναρξη καλείται πριν από την πρώτη ενημέρωση πλαισίου void Εκκίνηση () {} // Η ενημέρωση καλείται μία φορά ανά κενό πλαίσιο Ενημέρωση () {score.text = "Βαθμολογία παίκτη 2:" + p2; } void OnCollisionEnter2D (Collision2D other) {if (other.gameObject.tag == "Ball") {Destroy (other.gameObject); p2 ++; Instantiate (μπάλα, ball_respawn.position, ball_respawn.rotation)? }}}

Συνιστάται: