Πώς να κάνετε έναν προσαρμοσμένο ελεγκτή παιχνιδιών με το Arduino και την Ενότητα

Θέλατε ποτέ να σχεδιάσετε το δικό σας ελεγκτή παιχνιδιών; Είναι πιο εύκολο από ό, τι νομίζετε!

Θέλατε ποτέ να σχεδιάσετε το δικό σας ελεγκτή παιχνιδιών;  Είναι πιο εύκολο από ό, τι νομίζετε!
Διαφήμιση

Θέλατε ποτέ να σχεδιάσετε το δικό σας ελεγκτή παιχνιδιών; Είναι πιο εύκολο από ό, τι νομίζετε!

Σε αυτό το σύντομο έργο θα δημιουργήσουμε ένα απλό προσαρμοσμένο ελεγκτή παιχνιδιών για χρήση με τη μηχανή παιχνιδιών Unity. Αυτός ο ελεγκτής θα τροφοδοτείται από ένα Arduino Uno, αν και θα μπορούσατε να χρησιμοποιήσετε μία από τις πολλές εναλλακτικές λύσεις Arduino Οδηγός αγοράς: Ποιο συμβούλιο πρέπει να πάρετε; Arduino Οδηγός αγοράς: Ποιο συμβούλιο πρέπει να πάρετε; Υπάρχουν τόσα πολλά διαφορετικά είδη σανίδων Arduino εκεί έξω, θα συγχωρεθήκατε για σύγχυση. Ποια θα πρέπει να αγοράσετε για το έργο σας; Ας βοηθήσουμε, με αυτόν τον οδηγό αγοράς Arduino! Διαβάστε περισσότερα εκεί για αυτό το έργο επίσης. Θα δημιουργήσουμε επίσης ένα βασικό παιχνίδι όπου θα χρησιμοποιήσετε τον ελεγκτή σας για να αποφύγετε την πτώση αντικειμένων και να επιβραδύνετε τον χρόνο.

Για αυτό το έργο θα χρειαστείτε

  • Arduino ή παρόμοιο μικροελεγκτή
  • 1 x 10k Ohm αντίσταση
  • 1 x στιγμιαίο διακόπτη
  • 1 x Ποτενσιόμετρο
  • Καλώδια σύνδεσης
  • Πιπίλα
  • Ενιαία μηχανή παιχνιδιών
  • Το plugin Uniduino από το Unity Asset Store ($ 30)
  • Πλήρης κωδικός έργου, σε περίπτωση που δεν θέλετε να το γράψετε (δεν περιλαμβάνει το plugin Uniduino)

Τα περισσότερα από αυτά τα πράγματα είναι διαθέσιμα σε ένα κιτ εκκίνησης Arduino. Αν δεν έχετε ένα κιτ εκκίνησης ελέγξτε τον οδηγό μας για την επιλογή των καλύτερων 4 Best Starter Kits για αρχάριους Arduino 4 Best Starter Kits για αρχάριους Arduino Υπάρχουν πολλά σπουδαία αρχαία σχέδια Arduino που μπορείτε να χρησιμοποιήσετε για να ξεκινήσετε, αλλά θα χρειάζονται πρώτα ένα Arduino και κάποια εξαρτήματα. Εδώ είναι η επιλογή μας από 4 από τα καλύτερα εκκινητήρια κιτ για ... Διαβάστε περισσότερα για εσάς.

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

Έξυπνο ελεγκτή 670

Συναρμολόγηση του ελεγκτή σας

Ρυθμίστε το breadboard σας και το Arduino όπως φαίνεται στην παρακάτω εικόνα. Αυτό είναι που θα χρησιμοποιήσουμε ως ελεγκτή παιχνιδιών μας, παρόλο που θα μπορούσατε να χρησιμοποιήσετε σχεδόν ακριβώς την ίδια ρύθμιση όπως ένα DIY midi controller Πώς να κάνετε έναν ελεγκτή MIDI με ένα Arduino Πώς να κάνετε έναν ελεγκτή MIDI με ένα Arduino Ως μουσικός που έχει συσσωρεύσει μια συλλογή από μουσικά όργανα και κιβώτια θορύβου, το ταπεινό Arduino είναι το τέλειο εργαλείο για τη δημιουργία ενός προσαρμοσμένου ελεγκτή MIDI. Διαβάστε περισσότερα!

Fritzing Diagram Σχολιασμός

Προετοιμασία του Arduino σας

Μόλις έχετε τα πάντα συνδεδεμένα, συνδέστε το Arduino μέσω USB. Στο κεφάλι IDE του λογισμικού Arduino στο Εργαλεία> Πίνακας και Εργαλεία> Θύρα για να επιλέξετε ποιο μικροελεγκτή και τη θύρα που χρησιμοποιείτε. Το IDE του Arduino συνοδεύεται από το σκίτσο που χρειαζόμαστε και μπορείτε να το βρείτε κάτω από το Αρχείο> Παραδείγματα> Firmata> StandardFirmata . Κάντε κλικ στην επιλογή Ανέβασμα και θα είστε έτοιμοι να μεταβείτε.

Εάν είστε νέος στο Arduino και το κεφάλι σας λιώσει ελαφρώς, ελέγξτε τον Οδηγό για τους αρχαρίους μας Ξεκινώντας με το Arduino: Οδηγός για αρχάριους Ξεκινώντας με το Arduino: Οδηγός για αρχάριους Το Arduino είναι μια πλατφόρμα πρωτοτύπων ηλεκτρονικών ανοικτών πηγών που βασίζεται σε ευέλικτες και εύχρηστες χρήση υλικού και λογισμικού. Πρόκειται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα για να σας βοηθήσουν να μιλήσετε με τον υπολογιστή σας όμορφα.

Ρύθμιση του Έργου Ενότητας

Στην Ενότητα, ανοίξτε το παράθυρο> Αποθήκη περιουσιακών στοιχείων για να αποκτήσετε πρόσβαση στο Κατάστημα περιουσιακών στοιχείων της Unity από τον επεξεργαστή ενότητας. Αναζήτηση στο Κατάστημα περιουσιακών στοιχείων για την προσθήκη Uniduino. Αυτό το plugin θα σας επιτρέψει να λαμβάνετε και να στέλνετε δεδομένα προς και από τις ακίδες Arduino μέσα στην Unity. Το plugin κατά τη στιγμή της γραφής κοστίζει $ 30. Είναι δυνατόν να εκτελέσετε αυτό το έργο χωρίς να αγοράσετε το plugin, αν και είναι μάλλον πιο περίπλοκο και μπορεί να βρείτε το plugin πιο βολικό σε όλο τον κόσμο.

Unity Asset Store Uniduino

Αυτό το βίντεο από τους δημιουργούς του plugin σας μεταφέρει στη διαδικασία δοκιμής όλων των λειτουργιών, μαζί με την πρώτη φορά setup. Σημειώστε ότι ίσως χρειαστεί να επαναφέρετε τον επεξεργαστή Unity στα Windows.

Μπορούμε να χρησιμοποιήσουμε τον ίδιο πίνακα ελέγχου για να δοκιμάσουμε τον ελεγκτή μας. Ρυθμίστε τον ακροδέκτη D2 στην ένδειξη INPUT και Digital. Στη συνέχεια, ρυθμίστε την Ακίδα Α5 στο ANALOG. Το ποτενσιόμετρο και το κουμπί θα πρέπει να εμφανίζουν τις τιμές στην οθόνη δίπλα στους αριθμούς καρφίτσας τους τώρα. Πρόοδος!

Δοκιμή uniduino

Τώρα να κάνουμε κάτι που μπορούμε να ελέγξουμε

Έχουμε λοιπόν έναν ελεγκτή, αλλά τι θα ελέγξουμε; Λοιπόν, οι δυνατότητες είναι ατελείωτες, αλλά για σήμερα θα δημιουργήσουμε ένα πολύ απλό παιχνίδι παρακάμπτουμε για να δοκιμάσουμε το νέο μας σύστημα ελέγχου. Θα προχωρήσουμε πολύ γρήγορα στη ρύθμιση του παιχνιδιού, οπότε αν είστε εντελώς νέοι στη μηχανή Unity, μπορείτε να βρείτε τον Οδηγό για τους αρχαρίους μας Unity Programming Οδηγός για αρχάριους Προγραμματισμός ενός παιχνιδιού με την ενότητα: Οδηγός για αρχάριους Προγραμματισμός ενός παιχνιδιού με ενότητα: Οδηγός για αρχάριους Στην εξελισσόμενη το τοπίο της ανάπτυξης παιχνιδιών indie, η Unity έχει αναδειχθεί ως κάτι από ένα de facto πρότυπο: το χαμηλό κόστος, η ευκολία χρήσης και το ευρύ σύνολο χαρακτηριστικών του καθιστούν ιδανικό για γρήγορη ανάπτυξη παιχνιδιών. Διαβάστε περισσότερα χρήσιμο για να πάρετε τα ρουλεμάν σας.

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

Δημιουργήστε μια νέα σκηνή και σύρετε το Prefab Uniduino από το στοιχείο Assets> Uniduino> Prefabs στην ιεραρχία σας και σύρετε το prefab Uniduino στην ιεραρχία. Χρειαζόμαστε εκεί για να μιλήσουμε μεταξύ του παιχνιδιού και του ελεγκτή μας.

Στην ιεραρχική ενότητα κάντε κλικ στην επιλογή Δημιουργία> Σφαίρα και χρησιμοποιήστε την καρτέλα Μετασχηματισμός στον Επιθεωρητή για να την μετακινήσετε στο κάτω μέρος της οθόνης του παιχνιδιού.

Θέση της σφαίρας επιθεωρητή X

Είναι ώρα να αποκτήσετε κωδικοποίηση

Τώρα για να προσθέσετε κάποιο κωδικό σε αυτό το μέρος. Με την σφαίρα που επιλέξατε στην Ιεραρχία, κάντε κλικ στην επιλογή Προσθήκη στοιχείου> Νέο σενάριο στο κάτω μέρος του παραθύρου Επιθεωρητή. Ονομάστε το σφαίραΜεταφορά και επιλέξτε C Sharp από το αναπτυσσόμενο μενού. Κάντε κλικ στην επιλογή Δημιουργία και Προσθήκη και η δέσμη ενεργειών θα προστεθεί στο GameObject. Κάντε διπλό κλικ σε αυτό για να ανοίξετε τη δέσμη ενεργειών και εισαγάγετε αυτόν τον κωδικό:

using UnityEngine; using System.Collections; using Uniduino; public class sphereMover : MonoBehaviour { //Headers aren't scrictly neccesary, but they make life easier back in the Inspector. [Header("Arduino Variables")] //we need to declare the Arduino as a variable public Arduino arduino; //we need to declare an integer for the pin number of our potentiometer, //making these variables public means we can change them in the editor later //if we change the layout of our arduino public int potPinNumber; //a float variable to hold the potentiometer value (0 - 1023) public float potValue; //we will later remap that potValue to the y position of our capsule and hold it in this variable public float mappedPot; //public int for our button pin public int buttonPinNumber; [Header("Sphere Variables")] //variables to hold the values we noted earlier for the sides of our screen public float leftEdge; public float rightEdge; // Use this for initialization void Start () {//and initialize we shall, starting with the Arduino Variable. //we are only using one arduino, so we can use Arduino.global to grab it. arduino = Arduino.global; arduino.Setup(ConfigurePins); } void ConfigurePins() { //configure the Arduino pin to be analog for our potentiometer arduino.pinMode(potPinNumber, PinMode.ANALOG); //Tell the Arduino to report any changes in the value of our potentiometer arduino.reportAnalog(5, 1); //configure our Button pin arduino.pinMode(buttonPinNumber, PinMode.INPUT); arduino.reportDigital((byte)(buttonPinNumber / 8), 1); } } 

Αφιερώστε λίγο χρόνο για να διαβάσετε τα σχόλια του κώδικα. Μέχρι στιγμής έχουμε δηλώσει κάποιες μεταβλητές για το Arduino, τις καρφίτσες του και τη σφαίρα μας. Έχουμε επίσης χρησιμοποιήσει το
Ξεκινήστε και ρυθμίστε τις μεθόδουςPins για να αρχικοποιήσετε το Arduino κατά την εκτέλεση του χρόνου. Αφήστε το σενάριό μας να αποθηκευτεί και να επιστρέψετε στον επεξεργαστή Unity και να δείτε τι άλλαξε.

Script Mover Script με κενές μεταβλητές

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

Script Mover Script με μεταβλητές

Πρώτα σημάδια της ζωής

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

 void Update () { //We assign the value the arduino is reading from our potentionmeter to our potValue variable potValue = arduino.analogRead(potPinNumber); } 

Τώρα που έχουμε μετατρέψει την μεταβλητή μας potValue σε κάθε καρέ, μπορούμε να δούμε την αξία της σε real time στο Unity Inspector. Πριν μας δώσει μια δοκιμή, τώρα θα ήταν μια καλή στιγμή να ελέγξετε ότι το plug-in Uniduino ακούει στο σωστό λιμάνι. Κάντε κλικ στο Uniduino στην Heirarchy και ελέγξτε το όνομα του Port στο Inspector. Αν είναι κενό, συμπληρώστε τον σωστό αριθμό θύρας για το Arduino σας. Στην περίπτωση αυτή ήταν COM4, ​​αν και μπορεί να είναι διαφορετική για εσάς. Ελέγξτε εάν χρησιμοποιείτε το IDE του Arduino αν δεν είστε βέβαιοι.

Η Uniduino Check Port είναι σωστή

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

Σημάδια Ζωής 2

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

Ας μετακινήσουμε αυτή τη σφαίρα

Τώρα που έχουμε εκτός της μεταβλητής potValue που ενημερώνεται, θέλουμε να χρησιμοποιήσουμε αυτήν την τιμή για να μετακινήσουμε τη σφαίρα μας. Όταν το ποτενσιόμετρο είναι μέχρι το αριστερό, θέλουμε η σφαίρα να βρίσκεται στην αριστερή πλευρά της οθόνης και αντίστροφα. Τα αντικείμενα στην Ενότητα τοποθετούνται σε ένα σημείο στο Vector space, καθορίζεται από τις τιμές της μετασχηματισμού. Στην παρακάτω εικόνα, όπου η σφαίρα βρίσκεται στο πιο απομακρυσμένο σημείο προς τα αριστερά, θα θέλαμε, μπορείτε να δείτε ότι το διάνυσμα θέσης είναι 9, 5, -4, 0.

Μετασχηματίστε το παράδειγμα 670

Θέλουμε να επηρεάσουμε τη θέση X της σφαίρας. Δυστυχώς η χρήση των τιμών από το ποτενσιόμετρό μας απευθείας δεν θα λειτουργήσει, όπως όταν το ποτενσιόμετρο είναι σε όλη τη διαδρομή προς τα αριστερά δίνει μια τιμή 0 - η οποία θα έβαζε τη σφαίρα μας δεξιά στη μέση της οθόνης. Στο άλλο άκρο, η κορυφαία τιμή του ποτενσιόμετρου, 1023, θα τοποθετούσε τον κύβο στα δεξιά της οθόνης μας. Οχι χρήσιμο. Αυτό που χρειαζόμαστε εδώ είναι κάποια μαθηματικά.

Γιατί το Math όταν η ενότητα θα το κάνει για σας;

Για όσους από εσάς υπάρχει ο φόβος κοιτάζοντας σε ένα κομμάτι χαρτί που καλύπτεται με ανόητες αριθμούς (αν και υπάρχουν μερικές μεγάλες ιστοσελίδες Οι 20 ιστοχώροι που χρειάζεστε για να μάθετε μαθηματικά Βήμα προς βήμα Οι 20 ιστοχώροι που χρειάζεστε για να μάθετε μαθηματικά Βήμα προς βήμα Έχουμε καταρτίσει οι καλύτερες τοποθεσίες για κάθε επίπεδο, ώστε να μπορείτε να μάθετε συστηματικά, να κερδίσετε μια καλύτερη κατανόηση των μαθηματικών ένα επίπεδο κάθε φορά, και να διασκεδάσετε! Διαβάστε περισσότερα που μπορούν να σας βοηθήσουν να μάθετε τα Μαθηματικά), δεν φοβάστε. Χρειαζόμαστε έναν τρόπο να κάνουμε τις τιμές του ποτενσιόμετρου να αντιστοιχούν με τη θέση Χ της σφαίρας μας. Ευτυχώς, μπορούμε να χρησιμοποιήσουμε μια μέθοδο επέκτασης .

Μια μέθοδος επέκτασης είναι ένα σενάριο που κάνει μια συγκεκριμένη δουλειά για εμάς. Σε αυτήν την περίπτωση, τις δίνουμε τις αξίες που έχουμε και τις επιστρέφει χαρτογραφημένες σε ένα άλλο, έτοιμες για χρήση στη δέσμη ενεργειών σφαίρας . Στο επάνω μέρος του πλαισίου του Έργου, κάντε κλικ στο Δημιουργία> C # Script και ονομάστε το ExtensionMethods. Πληκτρολογήστε τον παρακάτω κώδικα στο σενάριο:

 using UnityEngine; using System.Collections; public static class ExtensionMethods { //our handy dandy Remapper function public static float Remap (this float value, float from1, float to1, float from2, float to2) { return (value - from1) / (to1 - from1) * (to2 - from2) + from2; } } 

Αποθηκεύστε τη δέσμη ενεργειών και επιστρέψτε στο script sphereMover. Τώρα μπορούμε να χρησιμοποιήσουμε αυτή τη λειτουργία Remap στο σενάριό μας ExtensionMethods στη συνάρτηση Update για να μετατρέψουμε τις τιμές του ποτενσιόμετρου σε χρησιμοποιήσιμες τιμές στο παιχνίδι μας. Κάτω από το σημείο που μόλις αναθέσαμε τη μεταβλητή potValue, πληκτρολογήστε τα εξής:

Λειτουργία μετασχηματισμού

Η ερώτηση μας δείχνει ότι το remap μας παίρνει δύο ομάδες τιμών From και To και τις αντιστοιχίζει. Μπορούμε να εισαγάγουμε τις αξίες μας σε αυτό.

 mappedPot = potValue.Remap(0, 1023, leftEdge, rightEdge); 

Αποθηκεύστε το σενάριό σας, επιστρέψτε στον επεξεργαστή Unity και πατήστε το κουμπί αναπαραγωγής. Θα πρέπει τώρα να δείτε ότι η μεταβλητή μεταβλητής χαρτογραφημένων μεταβάλλεται όταν μετακινείτε το ποτενσιόμετρο, για να αντιστοιχίσετε με τις τιμές που καθορίσαμε για την αριστερή και την δεξιά άκρη μας. Πάρτε μια στιγμή για να καθίσετε και να ευχαριστήσετε το σενάριό σας ExtensionMethods. Δεν είναι υπολογιστής που βλέπεις.

Χαρτοσακούλα

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

Εναλλαγή Remap

Τώρα έχουμε τελικά χρήσιμες αξίες. Τώρα το μόνο που πρέπει να κάνουμε είναι να καθορίσουμε αυτές τις τιμές στη θέση X της σφαίρας μας:

 //Assign the mapped pot value to the sphere's x position transform.position = new Vector3(mappedPot, transform.position.y, transform.position.z); 

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

Κάνοντας το κουμπί να λειτουργήσει

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

 //if Unity detects the button is being pressed, the time scale slows down if (arduino.digitalRead(buttonPinNumber) == 1){ Time.timeScale = 0.4f; } else Time.timeScale = 1.0f; 

Τώρα έχουμε τους μηχανικούς του παιχνιδιού μας, ας προσθέσουμε κάποια εμπόδια! Θα χρησιμοποιήσουμε τον φυσικό εχθρό της σφαίρας, τον κύβο. Στην ιεραρχία, κάντε κλικ στο Δημιουργία> 3d Object> Cube . Στον επιθεωρητή του κύβου, προσθέστε το στοιχείο Component> Physics> Rigidbody . Ρυθμίστε την τιμή Drag του άκαμπτου σώματος σε 5. Επίσης, κάτω από το στοιχείο Collider Box στον επιθεωρητή, επιλέξτε Is Trigger. Αυτό θα μας επιτρέψει να ανιχνεύσουμε συγκρούσεις με τη σφαίρα μας.

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

 using UnityEngine; using System.Collections; public class collideWithSphere : MonoBehaviour { void OnTriggerEnter(Collider other) { Destroy(other.gameObject); } } 

Το OnTriggerEnter στέλνει ένα μήνυμα κάθε φορά που ο πομπός σκανδαλισμού χτυπά έναν άλλο πομπό. Σε αυτήν την περίπτωση, λέμε να καταστρέψει ό, τι αγγίζει. Αποθηκεύστε το σενάριο και επιστρέψτε στον επεξεργαστή Unity. Σύρετε τον κύβο από την ιεραρχία στον πίνακα Έργων. Θα παρατηρήσετε ότι το κείμενο του κύβου στην ιεραρχία έχει γίνει μπλε. Αυτό συμβαίνει επειδή έχουμε δημιουργήσει ένα prefab και το αποθηκεύσαμε στο έργο μας. Διαγράψτε τώρα τον κύβο σας από την ιεραρχία.

Το μόνο που χρειάζεται τώρα είναι ένα σενάριο για την αναπαραγωγή των κύβων. Στην ιεραρχία κάντε κλικ στην επιλογή Δημιουργία> Δημιουργία αδειάσματος και μετονομάστε την στο Game Manager στον Επιθεωρητή και προσθέστε ένα σενάριο σε αυτό που ονομάζεται gameManager. Ανοίξτε τη δέσμη ενεργειών και προσθέστε αυτόν τον κώδικα:

 using UnityEngine; using System.Collections; public class gameManager : MonoBehaviour { //a variable to hold the prefab we want to spawn public GameObject cube; //we want some variables to decide how any cubes to spawn //and how high above us we want them to spawn public int numberToSpwan; public float lowestSpawnheight; public float highestSpawnheight; // Use this for initialization void Start () { for (int i = 0; i< numberToSpwan; i++) { Instantiate(cube, new Vector3(Random.Range(-9, 9), Random.Range(lowestSpawnheight, highestSpawnheight), 0), Quaternion.identity); } } // Update is called once per frame void Update () { } } 

Αποθηκεύστε το σενάριο. Πίσω στον επεξεργαστή, επιλέξτε το Game Manager στην ιεραρχία και σύρετε το πρόπλασμα κύβου σας από τον πίνακα έργου στη μεταβλητή Cube στο Inspector. Συμπληρώστε τις τιμές για την αναπαραγωγή σας και εδώ. Μπορείτε να παίξετε με αυτό για να το κάνετε τόσο σκληρό όσο και εύκολο όσο θέλετε. Σημειώστε ότι αξίζει να έχετε τα χαμηλότερα κύβους σας αρκετά υψηλά για να επιτρέψετε στο Uniduino να αρχίσει - η απώλεια του παιχνιδιού προτού μπορέσετε να μετακινήσετε μπορεί να είναι απογοητευτική!

Διαχειριστής παιχνιδιών

Το τελικό έργο

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

Στο έργο αυτό δημιουργήσαμε έναν προσαρμοσμένο ελεγκτή με ένα Arduino, διαμορφώσαμε την Unity και την Uniduino για να επικοινωνήσουμε μαζί του και δημιουργήσαμε ένα απλό παιχνίδι για να το δοκιμάσουμε. Οι έννοιες εδώ μπορούν να εφαρμοστούν σε σχεδόν οποιοδήποτε έργο, και υπάρχουν ακόμα μαρμελάδες παιχνιδιών που ειδικεύονται σε ελεγκτές προσαρμοσμένες.

Με το Arduino και την Ενότητα θα μπορούσατε να δημιουργήσετε ένα έθιμο ελεγκτή από σχεδόν οτιδήποτε. Έχετε δημιουργήσει ένα hi-fi που ελέγχει ένα διαστημικό σκάφος; Μια τοστιέρα που ελέγχει ένα παιχνίδι πλατφόρμας;

Εάν έχετε κάνει ένα έργο όπως αυτό θα ήθελα πολύ να το δω! Δημοσιεύστε το στα παρακάτω σχόλια!

In this article