Δημιουργία εφαρμογών Android. Ξεκινήστε την ανάπτυξη κάτω από το Android Δημιουργώντας ένα τρισδιάστατο παιχνίδι για την ενότητα Android

  • 25.04.2021

Η ενότητα είναι ο κινητήρας στον οποίο τα περισσότερα από τα σύγχρονα παιχνίδια είναι χτισμένα σε διαφορετικές πλατφόρμες. Μέσω του κινητήρα, δημιουργεί πραγματικά παιχνίδια που επικεντρώνονται στην εκτόξευση σε υπολογιστές (Windows, Linux, MacOs), κινητά τηλέφωνα, υπολογιστές tablet (Android, iOS) και ακόμη και κονσόλες παιχνιδιών PlayStation, Xbox, Nintendo.

Πώς να δημιουργήσετε παιχνίδια στην ενότητα;

Η βάση της ενότητας είναι μια έννοια που προσανατολίζεται με συνιστώσες. Στην πραγματικότητα, οποιοδήποτε παιχνίδι αποτελείται από τη μάζα αντικειμένων αραιωμένων με πρόσθετα εξαρτήματα. Για παράδειγμα, κατά τη δημιουργία του πλατφόρμου, δημιουργούμε ένα gameobject, το οποίο επιπλέον συνδέει ένα γραφικό στοιχείο σε αυτό, το οποίο είναι υπεύθυνο για την εμφάνιση του χαρακτήρα και του στοιχείου ελέγχου, παρέχει τον έλεγχο χαρακτήρων από το ποντίκι, το πληκτρολόγιο, το joystick ή την οθόνη αφής . Ο κινητήρας δεν επιβάλλει περιορισμούς στον αριθμό παρόμοιων μονάδων. Μπορείτε να προσθέσετε τόσα πολλά εξαρτήματα στο GameObject, όπως απαιτείται. Όλες οι εργασίες στον κινητήρα είναι χτισμένες στη δημιουργία gameobject και εφαρμόζοντας κατάλληλα εξαρτήματα σε αυτά.

Οι αρχάριοι μπορούν να παραπλανήσουν την ορατή απλότητα της διαδικασίας, αν και δεν είναι. Για να δημιουργήσετε ένα μοναδικό και δημοφιλές παιχνίδι θα πρέπει να γράψετε πολλά εξαρτήματα από το μηδέν. Ακριβώς, στο περιβάλλον της ενότητας ονομάζεται σενάριο. Η μητρική γλώσσα δημιουργίας γλωσσών είναι C #, αλλά και μερικώς χρησιμοποιείται με το JavaScript και Boo (Περικοπή Python). Δημιουργήστε τα δικά μας εξαρτήματα δεν είναι εύκολο, μπορείτε ακόμη και να πείτε - αυτή είναι μια περίπλοκη διαδικασία που απευθείας συνδεδεμένη με τον κλασικό προγραμματισμό. Χωρίς τη διαθεσιμότητα επαρκούς επιπέδου γνώσης στον προγραμματισμό, θα πρέπει να είναι αδιαφανείς.

Υποστηριζόμενες πλατφόρμες

Πολλά μεγάλα έργα προτιμούν την ενότητα λόγω μιας τεράστιας λίστας πλατφορμών συμβατών με τον κινητήρα. Η τελική εφαρμογή λειτουργεί πραγματικά σε οποιοδήποτε λειτουργικό σύστημα υπολογιστή, δημοφιλείς κινητές πλατφόρμες και smarttv. Τι να πω, ακόμη και τα παιχνίδια του προγράμματος περιήγησης και τις εφαρμογές για συγκεκριμένες πλατφόρμες ( Όπως και ο Tizen Os.) Κατά προτίμηση αναπτύχθηκε στην ενότητα.

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

Το ίδιο ισχύει και για την Ίο. Ένα άλλο χαρακτηριστικό του Ίου είναι ότι κάτω από αυτό είναι δυνατό μόνο από έναν υπολογιστή ή ένα δισκίο από την Apple. Ελλείψει MacBook ή παρόμοιας συσκευής, η απελευθέρωση του παιχνιδιού γρήγορα σταματά και η ενότητα δεν καθίσταται καθόλου, η ίδια η Apple επιβάλλει παρόμοιο περιορισμό. Η έξοδος είναι απλή: εάν υπάρχει η IOS ανάπτυξη στα σχέδια, θα πρέπει να επιλέξετε μια κατάλληλη συσκευή για συναρμολόγηση εκ των προτέρων.

Πώς και πού να αναπτύξετε ένα παιχνίδι στον κινητήρα;

Η μακροπρόθεσμη διαδικασία ανάπτυξης παιχνιδιών μπορεί να πραγματοποιηθεί τόσο στα Windows όσο και στο Mac OS X. Υπάρχουν ήδη εκδόσεις του επεξεργαστή κάτω από το Linux, αλλά δεν είναι ακόμη απαραίτητο να υπολογίζουμε στη σταθερή δουλειά τους. Τις περισσότερες φορές για να δημιουργήσετε το παιχνίδι, ο προγραμματιστής διεξάγεται μέσα στον επεξεργαστή ενότητας. Πρέπει ακόμα να γράψετε πολύ χρόνο για να γράψετε κώδικα των σεναρίων, μπορούμε να το δημιουργήσουμε είτε σε τυποποιημένο μονόδρομο είτε σε οποιονδήποτε συντάκτη ενός προγραμματιστή τρίτων. Τώρα χρησιμοποιήστε ενεργά το Visual Studio, καθώς και ένα εξαιρετικό κείμενο, αλλά μόνο με τον οφειλόμενο συντονισμό.

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

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

  1. Μοντέλα αντικειμένων ·
  2. Λειτουργικές προδιαγραφές.
  3. Περιεχόμενο τυχερών παιχνιδιών;
  4. Διεπαφή.

Εξετάστε το καθένα από τα στοιχεία λεπτομερέστερα.

Μοντέλα αντικειμένων

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

Λειτουργικές προδιαγραφές

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

Περιεχόμενο Παιχνιδιού

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

Διεπαφή

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

Κινητήρας παιχνιδιού

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

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

UDK.

Ροπή 2D / 3D

Τι είναι ο σχεδιαστής παιχνιδιών;

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

Ο σχεδιαστής σάς επιτρέπει να δημιουργήσετε παιχνίδια διαφόρων ειδών για τα Windows, το Android και το iOS. Προσφέρει μια μεγάλη ποικιλία από τελειωμένες τοποθεσίες, αντικειμένων, χαρακτήρων και διακοσμήσεων ήχου, έτσι ώστε η δημιουργία του πρώτου παιχνιδιού Android δεν χρειάζεται πολύ χρόνο. Οι χρήστες που είναι γνωστοί με τις γλώσσες προγραμματισμού JS και C ++ μπορούν να χρησιμοποιήσουν το ενσωματωμένο GML GML. Το μόνο μειονέκτημα είναι ότι το πρόγραμμα δεν μεταφράζεται στα ρωσικά.

συμπέρασμα

Η δημιουργία ενός παιχνιδιού για το Android δεν είναι αρκετά απλή, αλλά μια πολύ κερδοφόρα επιχείρηση. Εάν αποφασίσετε να αναπτύξετε ένα παιχνίδι και να το κερδίσετε, πρώτα να εργαστείτε την ιδέα. Στη συνέχεια, γράψτε το "Design Document" και αποφασίστε για τη μηχανή παιχνιδιών που μπορεί να αποκαλύψει κυρίως τις δυνατότητές της. Μετά από αυτό, μπορείτε να προχωρήσετε απευθείας στη δημιουργία της εφαρμογής στον κατασκευαστή.

βίντεο

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

Πόσο γρήγορα και σχετικά εύκολο να δημιουργήσετε ένα απλό παιχνίδι ή μια εφαρμογή για το Android; Αυτό διαβάζεται για αυτό στο παρακάτω άρθρο, όπου εξετάζεται η εργασία με τον κινητήρα Unity3D.

Παίζεις παιχνίδια στον υπολογιστή; Εάν ναι, τότε, στη διαδικασία διέλευσης του επόμενου παιχνιδιού Blockbuster, μερικές φορές είχατε σκέψεις όπως: "Αλλά εδώ, θα έκανα λάθος!". Και θέλετε να επισκεφθείτε το ρόλο του προγραμματιστή; Στη συνέχεια, σας προτείνω μια μικρή αλλά πολύ διασκεδαστική "περιπέτεια";)

Τι είναι ο κινητήρας και γιατί χρειάζεται;

Προηγουμένως, κατά τις ημέρες των πρώτων υπολογιστών, τα παιχνίδια και τα προγράμματα δημιουργήθηκαν από τη λεγόμενη μέθοδο "hardcore". Δηλαδή, για την πλήρη ανάπτυξη, ήταν απαραίτητο να είσαι ένας μάλλον έμπειρος προγραμματιστής, ο οποίος γνωρίζει προσεκτικά τη γλώσσα προγραμματισμού και σχεδόν ολόκληρο το παιχνίδι (συμπεριλαμβανομένων των γραφικών pixel και ειδικά εφέ!) Γράψτε σε απλό σημειωματάριο. Υπήρχαν λίγοι τέτοιοι άνθρωποι και είχαν εκτιμηθεί πολύ (και τώρα και τώρα) ...

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

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

Ωστόσο, για την ευκολία της εργασίας, είναι απαραίτητο να πληρώσετε κάποια αύξηση του μεγέθους του έργου (μερικές φορές ακόμη και αρκετές φορές!) Σε σύγκριση με το αναλογικό της γραμμένο από την παλιά μέθοδο "hardcore". Είναι για αυτό το μέρος των προγραμματιστών του κινητήρα δεν του αρέσει ή προσπαθούν να γράψουν τη δική τους, στην οποία χρησιμοποιούνται μόνο τα απαραίτητα στοιχεία ...

Αλλά είμαστε μακριά από εσάς σε προγραμματιστές tars-προγραμματιστές :) Επομένως, θα δημιουργήσουμε ένα απλό παιχνίδι για το Android με βάση το δημοφιλές και ισχυρό κινητήρα Unity3D.

Ξεκινώντας με το έργο στην Unity3D

Έτσι, γιατί αποφασίσαμε να χρησιμοποιήσουμε την Unity3D:

  • τη δυνατότητα δημιουργίας πλήρους παιχνιδιών 2D και 3D.
  • τη δυνατότητα να συντάσσετε το τελικό παιχνίδι για οποιαδήποτε συσκευή.
  • σχετική απλότητα του ελέγχου του κινητήρα.
  • καλή εκτατότητα λειτουργικότητας λόγω plug-ins.
  • Το σχετικά μικρό μέγεθος της τελικής συναρμολόγησης του παιχνιδιού (σε σύγκριση με άλλους κινητήρες).

Η κύρια κάρτα ατού είναι η Unity3D, φυσικά, η ευελιξία και η πολλαπλή του. Έτοιμο παιχνίδι (ίσως με μικρές τροποποιήσεις) μπορείτε να θύρα, ακόμη και σε υπολογιστή (με παράθυρα, linux ή macos), τουλάχιστον στο Android, τουλάχιστον στο PlayStation ή το Xbox! Για να το κάνετε αυτό, θα χρειαστεί να κατεβάσετε μόνο τον ίδιο τον κινητήρα, το οποίο, παρεμπιπτόντως, "ζυγίζει" περισσότερες gigabytes και το απαραίτητο SDK (εάν σχεδιάζεται να αναπτυχθεί για κινητές πλατφόρμες ή κονσόλες). Εάν θέλετε να κάνετε ένα παιχνίδι για τα Windows, δεν χρειάζεται να κατεβάσετε τίποτα άλλο, αλλά αφού θα κάνουμε το παιχνίδι κάτω από το Android, τότε θα χρειαστεί να κατεβάσετε περισσότερα Android SDK (κιτ ανάπτυξης λογισμικού). Σας συμβουλεύω να κατεβάσετε το SDK στο αρχείο zip για περισσότερη ευκολία να εργαστείτε με αυτό.

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

Για να το κάνετε αυτό, θα χρειαστεί να κλείσουμε όλα τα φιλόξενα και εισαγωγικά παράθυρα και, στη συνέχεια, επιλέξτε "Νέο Έργο" στο μενού "Αρχείο". Στο παράθυρο που ανοίγει (βλ. Στιγμιότυπο παραπάνω), θα σας δοθεί για να καθορίσουμε το φάκελο Save Project (το όνομά του θα ταιριάζει με το όνομα του έργου), εισάγετε ορισμένα τυπικά σύνολα λειτουργιών (δεν το χρειαζόμαστε) και καθορίζετε τη λειτουργία λειτουργίας. Ως λειτουργία, επιλέξτε 2D και κάντε κλικ στο κουμπί "Δημιουργία". Αυτό το ετοιμασμένο μέρος της εργασίας ολοκληρώθηκε :)

Κινητήρας έργου και Ιεραρχία Διεπαφή

Μετά τη δημιουργία του έργου, θα φορτωθεί στο χώρο εργασίας Unity3D:

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

  1. Το παράθυρο Ιεραρχίας εμφανίζει την ιεραρχική θέση των ενεργών και ανενεργών αντικειμένων στη σκηνή. Από προεπιλογή, το μόνο αντικείμενο που βρίσκεται αμέσως στη λίστα είναι η κάμερα (κύρια κάμερα).
  2. Το παράθυρο σκηνής εμφανίζει ολόκληρη τη σκηνή παιχνιδιών και αντικείμενα σε αυτό (συμπεριλαμβανομένων των φωτογραφικών μηχανών, των ήχων, των υφών κ.λπ.).
  3. Το παράθυρο επιθεωρητή εμφανίζει όλες τις ιδιότητες της ιεραρχίας που επιλέγονται στην ιεραρχία ή στη σκηνή αντικειμένων και τους επιτρέπει να επεξεργάζονται, συμπληρώστε ή διαγράψτε.
  4. Το παράθυρο παιχνιδιού - εμφανίζει τον κόσμο του παιχνιδιού, το οποίο είναι ορατό στην κάμερα και σας επιτρέπει να επιλέξετε το μέγεθος του εικονικού παραθύρου δοκιμής του παιχνιδιού σε εικονοστοιχεία. Επίσης, σας επιτρέπει να ενεργοποιήσετε την απόρριψη της μεγιστοποίησης στο παιχνίδι και να συμπεριλάβετε / απενεργοποιήσετε την εμφάνιση διαφόρων πληροφοριών για τον προγραμματιστή.
  5. Έργα και κονσόλα. Το παράθυρο του έργου χρησιμοποιείται για την πλοήγηση στους πόρους του έργου: φορτωμένες εικόνες, ήχοι, μοντέλα κλπ. Επίσης, χρησιμοποιώντας αυτό το παράθυρο (μενού περιβάλλοντος) Μπορείτε να δημιουργήσετε νέα κενά αντικείμενα παιχνιδιών διαφορετικών τύπων και σεναρίων. Το παράθυρο της κονσόλας χρησιμεύει για την εμφάνιση μηνυμάτων σφάλματος (κόκκινο), προειδοποιήσεις (κίτρινο) και διάφορες, ζητούνται από πληροφορίες εντοπισμού σφαλμάτων (γκρι).
  6. Το παράθυρο ετικέτας ενεργητικού είναι το κάτω μέρος του παραθύρου επιθεωρητών, το οποίο εμφανίζει την προεπισκόπηση του αντικειμένου ή του αρχείου που έχει επιλεγεί στο παράθυρο του έργου.

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

Θα δημιουργήσουμε έναν προσομοιωτή ενός μουσικού οργάνου: ινδικά λαϊκά τύμπανα που ονομάζονται "Tabla", έτσι ώστε να ξεκινήσετε, θα δημιουργήσουμε δύο άδειους φακέλους στο έργο στο οποίο θα αποθηκευτούν οι ήχοι και οι εικόνες. Μπορείτε να δημιουργήσετε ένα νέο φάκελο καλώντας το μενού περιβάλλοντος στο παράθυρο Project Navigator (Project) και επιλέγοντας "φάκελο" στη λίστα "Δημιουργία".

Εδώ αξίζει να λέτε μερικά λόγια για το πώς να καλέσετε αυτούς τους φακέλους. Για ένα απλό παιχνίδι, όπως ο προσομοιωτής μας, κατ 'αρχήν, οι φακέλοι μπορούν να "καλούν" όπως σας αρέσει, ωστόσο, υπάρχουν τουλάχιστον δύο ονόματα που είναι καλύτερα να μην χρησιμοποιηθούν επειδή διατηρούνται από τον κινητήρα. Αυτά είναι τα ονόματα των πόρων και των plugins. Σε μεγάλα έργα, ο φάκελος των πόρων δημιουργεί αμέσως και όλα τα τυχερά παιχνίδια "ανταλλακτικά" (εικόνες, ήχοι, μοντέλα, υφές και προκατασκευές) αποθηκεύονται ήδη σε αυτό (ταξινόμηση από υποφακέλους). Σε plugins, ως εξής από το όνομα, όλα τα πρόσθετα σύνολα χαρακτηριστικών τρίτου μέρους αποθηκεύονται (τα λεγόμενα "περιουσιακά στοιχεία" (περιουσιακά στοιχεία)), τα οποία είναι αρκετά για το κατάστημα περιουσιακών στοιχείων - το κατάστημα επέκτασης για την Unity3D.

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

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

Αφού εμφανιστούν οι εικόνες στο φάκελο των εικόνων μας, θα πρέπει να ρυθμιστούν λίγο:

Το γεγονός είναι ότι από την προεπιλεγμένη Unity3d όλες οι εικόνες που προστέθηκαν στο έργο συμπιέζει με απώλεια ποιότητας. Εάν δεν χρειαζόμαστε μια τέτοια απώλεια (ιδιαίτερα σχετική για τα παιχνίδια με τα γραφικά HD), τότε θα πρέπει να επιλέξουμε κάθε εικόνα και στο παράθυρο επιθεωρητή για να αλλάξουμε την τιμή της παραμέτρου "μορφής" με "συμπιεσμένο" στο "truecolor" στο " Προεπιλεγμένη καρτέλα. Μπορεί επίσης να χρειαστεί να αλλάξετε την παράμετρο "Μέγιστο μέγεθος" εάν είναι μικρότερο από το πραγματικό πλάτος της εικόνας (από προεπιλογή - 1024 pixels). Μετά από όλες τις αλλαγές, δεν πρέπει να ξεχάσετε να κάνετε κλικ στο κουμπί "Εφαρμογή" για να τα εφαρμόσετε. Παρόμοιες ενέργειες, εάν είναι απαραίτητο, κάνετε για όλες τις άλλες εικόνες.

Τώρα, ας δημιουργήσουμε αντικείμενα παιχνιδιού από τις φωτογραφίες μας. Για να το κάνετε αυτό, απλά σύρετε την επιθυμητή εικόνα στο παράθυρο Ιεραρχίας. Η εικόνα ή το μοντέλο 3D θα μετατραπεί αυτόματα στο αντικείμενο αντικειμένου παιχνιδιού και εμφανίζονται στο σημείο εκκίνησης της συντεταγμένης μπροστά από την κάμερα.

Πρώτα απ 'όλα, προσθέσαμε μια εικόνα φόντου, η οποία θα πρέπει να εμφανίζεται σε πλήρη οθόνη. Ελέγξτε αν είναι δυνατό να επισημάνετε την κάμερα στο παράθυρο της ιεραρχίας και να εξετάσετε το πώς εμφανίζεται το πλαίσιο του. Στο στιγμιότυπο οθόνης, είναι ξεκάθαρο πάνω από αυτό το μέρος του ιστορικού μας παραμένει εκτός της κάμερας, επομένως, πρέπει να ρυθμίσετε το μέγεθος αυτής της αναθεώρησης, σύροντας το πλαίσιο απευθείας στη σκηνή ή επεξεργαστείτε την παράμετρο "Μέγεθος" στο παράθυρο επιθεωρητή. Στην περίπτωσή μας, έπρεπε να αλλάξω την προεπιλεγμένη τιμή (5) κατά 5,4.

Όλοι, η κάμερα δεν αγγίζει πια, αλλά προσθέστε και ρυθμίστε τις υπόλοιπες εικόνες. Κατά την προσθήκη, βλέπουμε ότι μερικοί από αυτούς είναι πολύ μεγάλοι για το παιχνίδι μας. Μπορεί να μειωθεί είτε φυσικά σε έναν γραφικό επεξεργαστή είτε σε μέσο του κινητήρα. Ας δοκιμάσουμε τον τελευταίο τρόπο. Για να το κάνετε αυτό, επισημάνετε την εικόνα στο παράθυρο ιεραρχίας και στο παράθυρο επιθεωρητών, αλλάζουμε τις τιμές "κλίμακας" για τη συντεταγμένη x και y με 1 έως 0,5 (δηλαδή, μειώνουμε στα μισά του δρόμου). Είναι επίσης επιθυμητό, \u200b\u200bνα αποφευχθεί η επένδυση, ορίστε όλα τα αντικείμενα παιχνιδιών σε όλα τα αντικείμενα παιχνιδιών (εκτός από το φόντο) μηδενική σειρά στρώσεων (σειρά στο στρώμα):

Το τελευταίο βήμα στην προετοιμασία των αντικειμένων τυχερών παιχνιδιών από τις εικόνες θα είναι "κρεμασμένο" σε αυτά Colleder (Colleder). Στην Unity3D, οι κολλοκετές χρησιμοποιούνται ως ανιχνευτές αλληλεπίδρασης μεταξύ αντικειμένων. Δηλαδή, στην πραγματικότητα, ένα εικονικό κέλυφος φοριέται στην εικόνα μας, η οποία μπορεί να εγγραφεί να το αγγίξει.

Για να προσθέσετε έναν συλλεκτικό σε ένα αντικείμενο, επιλέξτε το στο παράθυρο Ιεραρχίας και στη συνέχεια στο παράθυρο επιθεωρητή, κάντε κλικ στο κουμπί "Προσθήκη συνιστωσών". Στη λίστα συνιστωσών που εμφανίζεται, ψάχνουμε για φυσική 2D (η συνήθης 3D φυσική στη λειτουργία μας δεν θα λειτουργήσει) και εκεί από όλες τις επιλογές είναι το πιο κατάλληλο για "Circle Colleder 2D". Το επιλέγω. Ένα πράσινο εγκεφαλικό επεισόδιο θα εμφανιστεί γύρω από το αντικείμενο μας, το οποίο εμφανίζει τα σύνορα του συλλεκτικού. Παραμένει μόνο για να επισημάνετε το στοιχείο "TRIGGER" για να κάνετε τον συλλεκτικό μας μόνο να καταχωρήσει τον Τύπο και να μην αλληλεπιδράσει πλέον με το περιβάλλον χώρο:

Παρόμοιες ενέργειες επαναλάβετε για όλα τα υπόλοιπα αντικείμενα. Διαφορετικά από άλλα αντικείμενα θα είναι μόνο το ιστορικό μας. Για αυτόν, εφαρμόζουμε το Box Colleder 2D και παρουσιάζουμε θέση Z περισσότερο μηδέν για να σπρώξετε τον συλλεκτικό και το φόντο στο παρασκήνιο (αυτό είναι χρήσιμο για μας λίγο αργότερα).

Εργασία με τον ήχο

Με τον ήχο στην ενότητα 3D με την πρώτη ματιά, όλα είναι κάπως συγκεχυμένα. Αλλά θα προσπαθήσουμε να το καταλάβουμε με τη σειρά :)

Πρώτα απ 'όλα, πρέπει να σύρετε όλους τους ήχους στον φάκελο ήχου και να τα διαμορφώσουμε επίσης:

Εάν το επίπεδο έντασης ήχου όλων των ήχων ρυθμίζεται αρχικά, τότε όλα όσα πρέπει να γίνουν είναι να απενεργοποιήσετε την επεξεργασία 3D ήχου. Σε τρισδιάστατα παιχνίδια, αυτή η επεξεργασία είναι απαραίτητη για να μιμηθεί η προσέγγιση της πηγής ήχου όταν η κάμερα το πλησιάσει. Αλλά σε 2D, μπορούμε να κάνουμε οτιδήποτε, έτσι διαθέτουμε κάθε ήχο με στροφή και αφαιρέσουμε το πλαίσιο ελέγχου "3D Sound".

Τώρα μπορούμε να προχωρήσουμε για να προσθέσουμε ήχους σε αντικείμενα παιχνιδιών. Για να το κάνετε αυτό, πρέπει να επισημάνουμε κάθε κουμπί με τη σειρά του και να την προσθέσουμε ένα νέο συστατικό "ήχου" από την ενότητα "AUDIO". Όταν προστεθεί το στοιχείο, επιλέξτε το αντίστοιχο κουμπί "Audio Clip" και αφαιρέστε την προεπιλεγμένη "αναπαραγωγή σε ξύπνια" (αναπαραγωγή όταν εμφανίζονται):

Όταν όλοι οι ήχοι είναι συνδεδεμένοι στα δεξιά κουμπιά, ο χρόνος θα έρθει για το πιο ενδιαφέρον - script ...

Πρώτο σενάριο

Πριν ξεκινήσετε να αποσυναρμολογήσετε το πρώτο μας σενάριο, πιθανότατα αξίζει να πείτε μερικά λόγια για το ίδιο το σύστημα δέσμης ενεργειών στην ενότητα 3D.

Η Uniti σας επιτρέπει να γράφετε κωδικό αμέσως σε τρεις γλώσσες: JavaScript (ακριβέστερα, η ελαφρώς τροποποιημένη έκδοση του UnityScript), C # και Boo. Σε πολλά βιβλία και εγχειρίδια, μπορείτε να βρείτε τη γνώμη ότι για αρχάριους, η δέσμευση στην ενότητα είναι πιο εύκολη στο παράδειγμα του JavaScript. Ωστόσο, αυτή η γλώσσα δεν είναι τόσο άνετη όσο το υπόλοιπο, και στο μέλλον, πιθανότατα θα πρέπει να αποσύρετε. Ως εκ τούτου, είναι καλύτερο να ξεκινήσετε αμέσως με τη μελέτη του C # (Boo δεν είναι επίσης κακή, αλλά υπάρχουν λίγα εκπαιδευτικά υλικά σε αυτό).

Τώρα για το πού να γράψετε κώδικα. Από προεπιλογή, ο κώδικας στην ενότητα είναι το IDE Monodevelop. Το πλεονέκτημα αυτού του περιβάλλοντος ανάπτυξης είναι ότι έχει συμβουλές για να εισέλθουν γρήγορα τυπικές μεθόδους, τάξεις και λειτουργίες, καθώς και το σύστημα ελέγχου σύνταξης. Ωστόσο, το μείον για μένα ήταν δυσκίνητη και υψηλή ένταση πόρων. Ευτυχώς, στις ρυθμίσεις της ενότητας, μπορείτε να εγκαταστήσετε ως επεξεργαστής κειμένου, οτιδήποτε, έτσι "ανασταλεί" εύκολο και λειτουργικό σημειωματάριο ++ (σχεδόν όλα τα παραδείγματα θα εμφανιστούν σε αυτό).

Και ΤΕΛΕΥΤΑΙΟ. Φυσικά, χωρίς υλικά αναφοράς στην ανάπτυξη όλων των σοφίων, δεν θα πάτε μακριά, οπότε εδώ είναι ένας κατάλογος πολλών λογικών πόρων Internet για την ενότητα 3D:

  • http://docs.unity3d.com/ru/current/manual/unitymanualRestrected.html - το επίσημο εγχειρίδιο για τον κινητήρα με μερική μετάφραση στα ρωσικά (εμφανίστηκε πρόσφατα και ενώ λειτουργεί ασταθής).
  • http://docs.unity3d.com/ru/current/scriptrenference/index.html - επίσημος πίνακας-κατάλογος για δέσμες ενεργειών στα αγγλικά.
  • http://unity3d.ru/distribution/index.php - Φόρουμ προγραμματιστή ρωσικής γλώσσας κάτω από την ενότητα 3D;
  • http://abrahabr.ru/post/141362/ - κύκλος μαθημάτων για τη δημιουργία τρισδιάστατων παιχνιδιών στο Habrahabre.
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx είναι το επίσημο εγχειρίδιο C # από \u200b\u200bτη Microsoft στα ρωσικά.

Λοιπόν, για να μην το τραβήξει για μεγάλο χρονικό διάστημα, προτείνω να δημιουργήσω αμέσως το πρώτο σενάριο. Κάτω από τα σενάρια, αν υπάρχουν πολλά άλλα, είναι καλύτερα να επισημάνετε έναν ξεχωριστό φάκελο, αλλά θα έχουμε ένα απλό παιχνίδι, οπότε μπορούμε να δημιουργήσουμε ένα σενάριο απευθείας στον ριζικό φάκελο του έργου. Για να το κάνετε αυτό, καλέστε το μενού περιβάλλοντος στο παράθυρο του έργου, επιλέξτε τη λίστα Δημιουργία και κάντε κλικ στην επιλογή "C # script". Ας καλέσουμε το νέο μας σενάριο, για παράδειγμα, ακούγεται και να το ανοίξει με διπλό ποντίκι. Αφαίρεση των τυποποιημένων μεθόδων ενημέρωσης και εκκίνησης, και στη συνέχεια, μιλώντας το επιθυμητό, \u200b\u200bλαμβάνουμε τον ακόλουθο τύπο δέσμης ενεργειών:

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

Στην πραγματικότητα, κάθε σενάριο στο C # αποτελείται από τρία κύρια μέρη:

  1. Στην κορυφή, οι βιβλιοθήκες παρατίθενται ότι πρέπει να συνδεθείτε στη λειτουργία δέσμης ενεργειών (για παράδειγμα, "χρησιμοποιώντας την ενότητα.Engine" συνδέεται με τη λειτουργία του ίδιου του κινητήρα και η "χρήση συστήματος" είναι μια βιβλιοθήκη που περιέχει ένα Αριθμός ενσωματωμένων κλάσεων για τη λειτουργία δέσμης ενεργειών κάτω από διαφορετικά συστήματα).
  2. Τάξη και μεταβλητή δήλωση. Στο C # δεν υπάρχει έννοια ενός σεναρίου, ως εκ τούτου. Αντ 'αυτού, χρησιμοποιείται η έννοια της "τάξης", η οποία περιλαμβάνει μια σειρά μεθόδων και λειτουργιών. Αν και, στην πραγματικότητα, στο πλαίσιο της ενότητας 3D, είναι σχεδόν το ίδιο πράγμα :) Το κύριο πράγμα είναι να θυμάστε ότι το όνομα της τάξης πρέπει να ταιριάζει με το όνομα που δώσαμε το σενάριο. Το χαρακτηριστικό των μεταβλητών στο C # είναι ότι είναι απαραιτήτως (εκτός από το προσωρινό, το οποίο κηρύχονται στο ίδιο το σενάριο) πρέπει να πληκτρολογηθεί. Στην πράξη, αυτό σημαίνει ότι το επίπεδο πρόσβασης πρέπει να καθορίζεται για τη μεταβλητή και τον τύπο (int, float, bool ή, όπως εμείς στο σενάριο, audioclip. Σε αυτή την περίπτωση, το όνομα της μεταβλητής μπορεί να δοθεί οποιαδήποτε. Και μπορώ να μπορώ Αμέσως και το χαρακτηριστικό αξίας.
  3. Σύνολο μεθόδων και λειτουργιών. Η μέθοδος στο C # είναι σχεδόν οποιοδήποτε χαρακτηριστικό που εκτελεί ορισμένες ενέργειες. Κατ 'αρχήν, στη βιβλιογραφία για την ενότητα 3D, ονομάζονται λειτουργίες, αλλά αν μιλάμε για C # ως ξεχωριστή γλώσσα προγραμματισμού, είναι οι μέθοδοι :). Οι λειτουργίες σε καθαρή μορφή στο Uniti είναι, για παράδειγμα, οι τυπικές λειτουργίες εξόδου ήχου, τα στοιχεία GUI σχεδίασης κ.λπ., τα οποία χρησιμοποιούνται εσωτερικές μεθόδους.

Γνωρίζοντας τώρα τη δομή του σεναρίου, δεν είναι δύσκολο να καταλάβουμε το νόημά της, το οποίο έρχεται κάτω από το επόμενο ... στον τομέα της τάξης (σεναρίου) δηλώνει 9 μεταβλητές του τύπου του Audioclip με τα ονόματα τους για την ευκολία να τις διακρίνουν με ονόματα. Τους κάνουμε απαραιτήτως το κοινό (ιδιωτικό δεν θα εμφανίζεται στον συντάκτη και θα χρειαστεί να "κρεμάσουμε" να ακούγονται μέσω του συντάκτη). Και στη συνέχεια στο σώμα του σεναρίου χρησιμοποιούμε την τυπική μέθοδο "Void onmousedownnown ()". Προηγουμένως, απάντησε μόνο στον χειρισμό του κλικ με το ποντίκι, αλλά σε νέες εκδόσεις ερμηνεύεται και αγγίζοντας την οθόνη αφής. Γράφουμε τις συνθήκες για τις οποίες ελέγξουμε τα ονόματα των κλειστών κολυμβητών και, αν βρούμε τον Τύπο ενός από αυτά, εξάγετε τον αντίστοιχο ήχο (χρησιμοποιούμε την τυπική λειτουργία ήχου.PlayoneShot ()).

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

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

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

Εισαγωγή στο GUI.

Κατ 'αρχήν, το παιχνίδι λειτουργεί ήδη, αλλά κάποιο είδος φαλακρός ". Δεν υπάρχει αρκετό κάτι σε αυτό ... και, τουλάχιστον, οι επιγραφές με τον τίτλο που είναι μπροστά μας! Με άλλα λόγια, πρέπει να εφαρμόσετε οποιαδήποτε ξεχωριστή διεπαφή χρήστη.

Στην πραγματικότητα, το GUI είναι μια μείωση από τα αγγλικά. "Γραφική διεπαφή χρήστη", δηλαδή η γραφική διεπαφή χρήστη. Παραδοσιακά, περιλαμβάνει τέτοια συστατικά ως εξής:

  • κουμπιά.
  • παράθυρο;
  • περιοχές κειμένου ·
  • chekboxes και / il ακτινοβολία;
  • slotters (μπαρ κύλισης), κλπ.

Στην ενότητα 3D, όλα αυτά (και ακόμη και κάτι πάνω από αυτό) είναι πλήρως παρόν. Το κύριο πράγμα είναι να μάθετε να το χρησιμοποιήσετε! Εξετάστε το πώς τα μέσα GUI στην ενότητα μπορούν να κάνουν μια απλή κεφαλή επιγραφή.

Για να το κάνετε αυτό, δημιουργήστε ένα νέο σενάριο που ονομάζεται διεπαφή και αλλάξτε το ως εξής:

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

Στη συνέχεια, δημιουργούμε ένα κουμπί ("gui.button"), το οποίο έχει την ακόλουθη σύνταξη: Κατάσταση - 4 Συντεταγμένες (οριζόντια από την αριστερή άκρη, κατακόρυφη κατακόρυφη από την επάνω άκρη, πλάτος, ύψος) - ορατό κείμενο σε εισαγωγικά και περαιτέρω , προαιρετικά, στυλ εισόδου. Μέσα από τις συνθήκες του κουμπιού, οι απαραίτητες λειτουργίες έχουν συνταγογραφηθεί. Στην περίπτωσή μας, συνταγήκαμε τη μετάβαση στον ιστότοπο του προγραμματιστή ("Application.Openurl ("); ").

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

Μπορούμε να καθορίσουμε το χρώμα του κειμένου και την υφή για το φόντο σε οποιεσδήποτε καταστάσεις (για το κουμπί που χρειάζεστε για να καταχωρίσετε τρεις από τις επιλογές του (κανονική - κανονική προβολή, το δείκτη του αιωρούμενου - όταν τοποθετείτε και ενεργά - όταν κάνετε κλικ), ορίστε τις ενδείξεις και ρυθμίστε τη γραμματοσειρά. Από προεπιλογή, το μόνο διαθέσιμο στην ενότητα 3D η γραμματοσειράς είναι arial, ωστόσο, μπορείτε να φορτώσετε χειροκίνητα οποιοδήποτε άλλο στο έργο και να το εφαρμόσετε στο πεδίο γραμματοσειράς, διαμορφώνοντας όλες τις σχετικές παραμέτρους.

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

Αλλαγή διασύνδεσης για κατάσταση και στατικές μεταβλητές

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

Σε αυτό το σενάριο έχουμε δύο μεταβλητές. Η πρώτη μεταβλητή ορίζει το δέρμα που θα χρησιμοποιηθεί για όλα τα στοιχεία διασύνδεσης που περιγράφονται στην κατηγορία αυτή. Σε αντίθεση με τα στυλ, το έργο με το οποίο εξετάσαμε παραπάνω, τα δέρματα σας επιτρέπουν να αλλάξετε την εμφάνιση όχι μόνο ενός ξεχωριστού στοιχείου στο οποίο αποδίδονται και όλα τα στοιχεία ενός συγκεκριμένου τύπου αμέσως. Επιπλέον, σε αντίθεση με τα στυλ, τα δέρματα δεν συνταγογραφούνται στα στοιχεία, αλλά δηλώνονται αμέσως για όλη τη μέθοδο και λειτουργούν μέχρι να δηλωθεί ένα άλλο δέρμα. Θα πρέπει επίσης να θυμόμαστε ότι τα δέρματα υπάρχουν όχι μόνο με τη μορφή μεταβλητών, αλλά και ως ξεχωριστά αρχεία. Ως εκ τούτου, πριν δηλώσετε το δέρμα, πρέπει να το δημιουργήσετε αμέσως στο παράθυρο "Έργο" από το μενού περιβάλλοντος: "Δημιουργία" - "GUI SKIN".

Η δεύτερη μεταβλητή είναι λογική (ή σε διαφορετικό bulev). Μπορεί να έχει μόνο δύο αξίες: "αλήθεια" (αληθής) ή "ψευδής" (FALSE). Λόγω της δυαδικής της φύσης, μια τέτοια μεταβλητή είναι ιδανική για την εφαρμογή όλων των διακόπτη. Στην περίπτωσή μας, θα είναι υπεύθυνη για την εμφάνιση κειμένου με την περιγραφή του παιχνιδιού μας.

Ωστόσο, εάν κοιτάξετε προσεκτικά, μπορείτε να δείτε ότι η τελευταία μεταβλητή έχει μια υπέροχη παράμετρο - "στατική". Η προσθήκη στις μεταβλητές μιας τέτοιας παραμέτρου σάς επιτρέπει να τα κάνετε στατικά και να έχετε πρόσβαση σε από άλλα σενάρια!

Αλλά πίσω στον υπόλοιπο κώδικα. Ήδη εξοικειωμένοι με εμάς "Void onmousedownnown ()" Η μέθοδος εδώ θα χρησιμεύσει ως διακόπτης της μεταβλητής "isvisible" χρησιμοποιώντας μια απλή κατάσταση. Ωστόσο, μετά την κατάσταση υπάρχει ένα άλλο χαρακτηριστικό. Αυτή η λειτουργία ("Debug.log ();") χρησιμεύει στην έξοδο "On the Fly" στην κονσόλα των τιμών των μεταβλητών που χρειαζόμαστε (εισάγετε χωρίς αποσπάσματα σε παρένθεση). Όπως μπορείτε να δείτε, μέσα στη λειτουργία, μπορείτε να συνδυάσετε τόσο αμετάβλητο κείμενο (γραμμένο σε εισαγωγικά) και μεταβλητές (χωρίς αποσπάσματα). Το κύριο πράγμα είναι ότι μόνο το σημάδι "+" μεταξύ όλων των δεδομένων.

Στη συνέχεια, στο κείμενο του σεναρίου, έχουμε μια μέθοδο σχεδίασης μιας διασύνδεσης ("κενό ongui ()"), μέσα στο οποίο βλέπουμε ένα νέο δέρμα ("gui.skin \u003d hellowkin?") Και ένα νέο στοιχείο του Διασύνδεση τύπου Gui.Box. Σε αντίθεση με ένα κουμπί, η πυγμαχία είναι ένα ανενεργό στοιχείο και συνήθως χρησιμοποιείται για την έξοδο διαφόρων δεδομένων κειμένου ή γραφικών.

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

Το τελευταίο βήμα προς την επιτυχία θα είναι η διαμόρφωση του δέρματός μας. Στη μεταβλητή δέσμης ενεργειών, καθορίστε το αρχείο Skins και, στη συνέχεια, επιλέξτε αυτό το αρχείο στο παράθυρο του έργου. Όσον αφορά τα άλλα αρχεία, οι ρυθμίσεις Skins θα εμφανιστούν στο παράθυρο επιθεωρητή. Εδώ ψάχνουμε για το στοιχείο που υπόκειται σε αλλαγές (στην περίπτωση μας), το αποκαλύπτουμε και διαμορφώνουμε το ίδιο στυλ παρόμοιο με τα παραπάνω:

Για να δείτε αν το σενάριο μας λειτουργεί σωστά, ξεκινήστε το έργο και προσπαθήστε να κάνετε κλικ στο κουμπί Βοήθεια:

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

Ας επιστρέψουμε στο πρώτο μας σενάριο ("ήχοι"), οι οποίες συνεχίζουν να πιέζουν τα κουμπιά για να παίξουν ήχους. Σε αυτό (με μεγαλύτερη ακρίβεια, μέσα στη μέθοδο "Void onmousedownnown ()"), θα συνταγογραφήσουμε επαρκώς μόνο μία γραμμή:

Εάν (αυτό.Name! \u003d "HelpButton") (Βοήθεια.νVisible \u003d False;)

Με αυτή τη γραμμή, καθορίζουμε την κατάσταση: Εάν το όνομα του συμπιεσμένου κολλητικού δεν είναι ίσο με το όνομα του κουμπιού βοήθειας, τότε η "isvisible" μεταβλητή στο script "Βοήθεια" θα είναι "FALSE". Είναι απαραίτητο μόνο η μεταβλητή "isvisible" να είχε με ακρίβεια μια "στατική" συνταγή, διαφορετικά παίρνουμε ένα λάθος.

Τώρα κατά την εκκίνηση, θα δούμε ότι το παράθυρο βοήθειας θα κλείσει όταν πιέζετε όχι μόνο το κουμπί στην επάνω δεξιά γωνία, αλλά και όταν αγγίζετε οποιοδήποτε δωρεάν τμήμα της οθόνης. Το μόνο πράγμα που μπορεί να βελτιωθεί είναι να γίνει το παράθυρο να είναι κρυμμένο και κάνοντας κλικ πάνω του ... θα είναι η "εργασία σας";) Θα πω μόνο ότι το GUI-Box θα χρειαστεί να αλλάξει το ίδιο διακοσμημένο κουμπί, και πάλι, με τη ρύθμιση του δέρματος και να συνταγογραφήσετε μια λειτουργία που αλλάζει τη μεταβλητή "isvisible". Όλοι, στη συνέχεια σιωπηλοί :)

Συγκέντρωση παιχνιδιού και αποθήκευση έργου

Τέλος, όλα συνεργάζονται μαζί μας! Αυτό σημαίνει ότι ήρθε η ώρα να διατηρήσουμε το παιχνίδι και να δοκιμάσετε την πραγματική συσκευή. Και για αυτό πρέπει να καταρτιστεί στο εκτελέσιμο αρχείο (για τα Windows, για παράδειγμα, στην EXE και για το Android σε APK).

Εάν θέλετε να συντάξετε το παιχνίδι για έναν υπολογιστή, δεν χρειάζεται να κάνετε προκαταρκτικές ρυθμίσεις. Ωστόσο, για το Android, θα χρειαστεί να συνδέσετε πρώτα τη λήψη από εμάς στην αρχή του Android SDK. Αυτό είναι αρκετά απλό: πηγαίνουμε στο μενού "Επεξεργασία", καλέστε το στοιχείο "Προτιμήσεις" και στο παράθυρο που ανοίγει, μεταβείτε στην καρτέλα "Εξωτερικά εργαλεία". Εδώ ψάχνουμε για μια σειρά "Android SDK τοποθεσία" και σε αυτό καθορίζει τη διαδρομή προς το μη συσκευασμένο αρχείο με το SDK (βλ. Στιγμιότυπο παρακάτω). Με την ευκαιρία, εδώ μπορείτε να αλλάξετε τον ενεργό προεπιλεγμένο μηδενικό επεξεργαστή κειμένου στο αγαπημένο σας :)

Και τώρα η στιγμή της αλήθειας είναι η στιγμή! Πηγαίνουμε στο μενού "Αρχείο" και αναζητούμε το στοιχείο "Build Settings". Στο παράθυρο που ανοίγει, θα χρειαστεί να προσθέσουμε αμέσως σκηνές για να οικοδομήσουμε. Εάν η σκηνή είναι ένα (όπως στο έργο μας), τότε θα είναι αρκετό για να κάνετε κλικ στο κουμπί "Προσθήκη ρεύματος". Εάν υπάρχουν αρκετοί από αυτούς, τότε θα χρειαστεί να ανοίξετε καθένα από αυτά και να κάνετε έναν παρόμοιο τρόπο με τη λίστα των σκηνών και στη συνέχεια σύρσιμο για να διαμορφώσετε τη σειρά που χρειάζεστε:

Το επόμενο βήμα είναι να επιλέξετε την πλατφόρμα συναρμολόγησης (σχεδιάζουμε το παιχνίδι κάτω από το Android, αυτό σημαίνει ότι επιλέγεται) και πατήστε το κουμπί "Ρυθμίσεις αναπαραγωγής" κάτω. Στο παράθυρο επιθεωρητή, ένας αριθμός ρυθμίσεων από τους οποίους ορισμένοι είναι υποχρεωτικοί ή πολύ επιθυμητές είναι ανοιχτές. Είναι επιθυμητό να καθορίσετε τα ονόματα της εταιρείας προγραμματιστών, το πρόγραμμα και τα εικονίδια του (όνομα εταιρείας, το όνομα του προϊόντος και το προεπιλεγμένο εικονίδιο, αντίστοιχα) στην κορυφή της λίστας των ρυθμίσεων.

Στο κάτω μέρος του ίδιου τμήματος στην ενότητα "Άλλες ρυθμίσεις" υπάρχουν δύο απαιτούμενες παραμέτρους: "Bundle Identifier" και "Version Bundle". Η προεπιλεγμένη έκδοση τοποθετείται ως 1,0, αλλά το αναγνωριστικό θα πρέπει να δημιουργηθεί χειροκίνητα και κατά προτίμηση μοναδικό. Θα πρέπει να αποτελείται από τρία μέρη που χωρίζονται από κουκκίδες: η αποκλειστική λέξη "COM", τότε το όνομα της εταιρείας του προγραμματιστή, και στο τέλος το όνομα της ίδιας της αίτησης.

Οι υπόλοιπες ρυθμίσεις συναρμολόγησης μπορούν να αλλάξουν με τη δική σας ή να μην αλλάξουν καθόλου. Το κύριο πράγμα είναι ότι τώρα η συλλογή μπορεί να ξεκινήσει ήδη. Για να το κάνετε αυτό, αρκεί να πατήσετε το κουμπί "Build" στο παράθυρο "Build Settings" και περιμένετε έως ότου τα προγράμματα μας δίνουν ένα έτοιμο, συσκευασμένο σε εφαρμογή αρχείου APK :)

συμπέρασμα

Σε αυτό, η επισκόπηση του μαθήματος για τη δημιουργία των απλούστεων εφαρμογών για το Android έρχεται στο τέλος. Για να επαναλάβετε όλα όσα μιλήσαμε, στο τέλος του άρθρου, θα δώσω έναν σύνδεσμο με το αρχείο, στο οποίο όλοι οι πόροι του παιχνιδιού θα αποθηκευτούν με τη μορφή ξεχωριστού φακέλου (αν θέλετε να κάνετε τα πάντα Ξύστε) και ως αρχείο με την επέκταση της UnityPackage. Το τελευταίο σας επιτρέπει να εισαγάγετε όλο το έργο στο Uniti ταυτόχρονα, συμπεριλαμβανομένων των εξαρτήσεων, κλπ.

Για να εισαγάγει το έργο μας (και, παρεμπιπτόντως, τυχόν προσθήκες που κατεβάζουν από το Διαδίκτυο ή το περιουσιακό στοιχείο) πρέπει να μεταβείτε στο μενού "Περιουσιακά στοιχεία", επιλέξτε "Πακέτο Εισαγωγής", και σε αυτό "Προσαρμοσμένο PACKE", μετά τον οποίο καθορίζετε το Διαδρομή προς το αρχείο μας και πατήστε το κουμπί "Εισαγωγή". Με την ευκαιρία, κάντε ένα πλήρες αντίγραφο ασφαλείας του έργου σας, με την αποθήκευση σε μια τέτοια μονάδα UnityPackage μπορείτε από το ίδιο μενού ("περιουσιακά στοιχεία") κάνοντας κλικ στο στοιχείο "Πακέτο εξαγωγής".

Φαίνεται, όλα :) Ως πρόσωπο που κατέλαβε την ενότητα 3D από το μηδέν, στο άρθρο που προσπάθησα να δώσω απαντήσεις στον μέγιστο αριθμό ερωτήσεων και να επισημάνω τις κύριες αποχρώσεις της εργασίας με τον κινητήρα που προκύπτουν στην αρχή. Αλλά, ίσως, κάποιος δεν θα είναι αρκετός, οπότε αν έχετε οποιεσδήποτε ερωτήσεις, μπορείτε να χειριστείτε είτε απευθείας σε μένα στο ταχυδρομείο είτε στο φόρουμ: τι μπορώ να βοηθήσω!

Σας εύχομαι καλή τύχη και επιτυχημένη εφαρμογή όλων των έργων!

ΥΣΤΕΡΟΓΡΑΦΟ. Επιτρέπεται ελεύθερα να αντιγράψει και να παραθέσει αυτό το άρθρο εάν καθορίσετε μια ανοικτή ενεργή αναφορά στην πηγή και διατηρώντας τη συντάκτη του Trader Ruslana.

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

Τα τελικά προϊόντα που δημιουργούνται στην Ενότητα 3D είναι συμβατά με σχεδόν όλες τις δημοφιλείς πλατφόρμες - που κυμαίνονται από κινητά τηλέφωνα και καταλήγουν με έξυπνες τηλεοράσεις τηλεόρασης.

Δυνατότητες προγράμματος:

  • Μάθηση κινητήρα ενότητας.
  • Ευέλικτος πολυλειτουργικός συντάκτης.
  • Υψηλό ποσοστό συλλογής ·
  • Εύκολο στην κατοχή της διεπαφής.
  • Συμβατότητα με μεγάλο αριθμό πλατφορμών.

Αρχή της λειτουργίας

Για να χρησιμοποιήσετε το πρόγραμμα, πρέπει να κάνετε λήψη της πλατφόρμας Hub Hunity και μπορείτε να δοκιμάσετε τις λειτουργίες της ελεύθερης έκδοσης του προσωπικού μέσω αυτού. Διατίθεται στον όγκο της νομισματοποίησης έως και 100 χιλιάδων δολαρίων ετησίως.

Εκτός από την ελεύθερη επιλογή, μπορείτε να εγγραφείτε σε δύο άλλες εκτεταμένες εκδόσεις:

Unity Plus (~ $ 25 μηνιαίως) - Παρέχει περιορισμένη πρόσβαση στην υπηρεσία συμβούλων επιτυχίας του πελάτη, συλλέγει πληροφορίες σχετικά με τις αποτυχίες σε συσκευές χρήστη, αναφορές οθόνης.

Unity Pro (~ $ 125 μηνιαίως) - Μέγιστη επιλογή συνδρομής. Παρέχει υποστήριξη από επαγγελματίες προγραμματιστές, επιτρέπει την πρόσβαση προτεραιότητας στην υποστήριξη από τους δημιουργούς του προγράμματος, περιλαμβάνει βελτιωμένα χαρακτηριστικά για την παρακολούθηση της απόδοσης και τη συλλογή στατιστικών στοιχείων.

Η οικοδόμηση όλων των ενεργειών τυχερών παιχνιδιών βασίζεται σε έναν αρκετά υψηλής ποιότητας φυσικό πυρήνα του προγράμματος (physx), από το οποίο εξαρτάται η συμπεριφορά των μοντέλων. Λόγω της δυνατότητας εισαγωγής υφών και αντικειμένων, το προϊόν μπορεί να δοθεί μοναδικότητα ή να χρησιμοποιήσει το εργαλείο ολοκληρωμένο πρόγραμμα ανάπτυξης. Είναι σημαντικό να καταλάβουμε ότι κάθε αντικείμενο που δημιουργήθηκε σε αυτόν τον σχεδιαστή είναι ένα συγκεκριμένο σύνολο σεναρίων και γεγονότων, τα οποία μπορούν να διαχειριστούν ανεξάρτητα.

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

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

Πλεονεκτήματα:

  • Πρακτικά απεριόριστη λειτουργικότητα για τη δημιουργία έργων ·
  • Υποστήριξη για το πρόγραμμα περιήγησης 3D γραφικών.
  • Συμβατότητα με κονσόλες παιχνιδιών και σύγχρονες τηλεοράσεις.
  • ένα μεγάλο αριθμό εργαλείων οπτικοποίησης.
  • Υπάρχει μια δωρεάν έκδοση.

Μοιραστείτε:

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

Μπορείτε να κατεβάσετε το Uniti 3D όχι μόνο για να προετοιμάσετε έναν ανταγωνιστή σε ένα δημοφιλές online παιχνίδι Jaggernaut (το οποίο σχεδιάζεται επίσης από τα εργαλεία του ήρωα της κριτικής μας), αλλά και να δημιουργήσετε κομψές τρισδιάστατες παρουσιάσεις. Ας πάρουμε λίγο περισσότερο, αλλά η επίδραση WOW για το κοινό είναι εγγυημένη.

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

Ανάλογα:

  • Επεξεργαστής παιχνιδιών - μια δωρεάν εφαρμογή για τη δημιουργία παιχνιδιών.
  • Η κατασκευή 2 είναι ένας δημοφιλής σχεδιαστής παιχνιδιών, που διακρίνεται από μια απλή διεπαφή.
  • Η κατασκευή 2 είναι ένα ισχυρό πρόγραμμα για τη δημιουργία 2D έργων.

Πώς να γράψετε γρήγορα ένα παιχνίδι για το Android για την ενότητα

Αυτή τη στιγμή, ο καθένας μπορεί να γίνει ένας επιτυχημένος προγραμματιστής κινητών παιχνιδιών ή εφαρμογών, χωρίς να εφαρμόζεται σε αυτή την προσπάθεια τιτανικού. Ένα παράδειγμα μιας τέτοιας υπόθεσης είναι ο Dong Nguyen, ο οποίος ανέπτυξε το Flappy Bird. Δεν υπήρχε δύσκολη μηχανική ή γραφικά στο παιχνίδι, αλλά δεν την εμπόδισε να γίνει δημοφιλής και να φέρει στον δημιουργό του πενήντα χιλιάδες δολάρια την ημέρα. Ωστόσο, δεν υπήρχε τίποτα αξιοσημείωτο στο παιχνίδι. Το μόνο που χρειάζεται για να πετύχει είναι να είναι στο σωστό μέρος την κατάλληλη στιγμή και μια μικρή καλή τύχη. Αυτό μπορεί να συμβεί σήμερα σήμερα, χρειάζεστε τη σωστή ιδέα.

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

Χαρακτήρας παιχνιδιού

Δημιουργήστε πρώτα ένα νέο έργο και βεβαιωθείτε ότι έχει επιλεγεί η επιλογή 2D.

Τοποθετήστε τα πουλιά σας στο σκηνικό. Μην ξεχάσετε να ενεργοποιήσετε τη φαντασία!

Στη συνέχεια, ρυθμίστε το μέγεθος του Sprite όπως θέλετε να το σύρετε με τη γωνία προς τη δεξιά κατεύθυνση. Το Sprite θα πρέπει να είναι ορατό στο παράθυρο ιεραρχίας στα αριστερά. Όλα τα αντικείμενα στη σκηνή είναι ορατά σε αυτό, και αυτή τη στιγμή θα πρέπει να υπάρχουν μόνο δύο: μια κάμερα και ένα πουλί.

Σύρετε την κάμερα στο πουλί και στην απελευθέρωση. Η κάμερα θα πρέπει να είναι κάτω από το πουλί, θα σημαίνει ότι η κάμερα είναι τώρα ένα "μωρό" πουλιά. Τώρα η θέση της κάμερας θα καθοριστεί σε σχέση με το πουλί. Εάν το πουλί μετακινείται προς τα εμπρός, τότε η κάμερα κάνει το ίδιο.

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

Τώρα κάντε κλικ στο Προσθήκη εξαρτήματος. Επιλέξτε Physics2d\u003e Rigidbody2D είναι ένα έτοιμο σύνολο οδηγιών για την εφαρμογή της βαρύτητας στον χαρακτήρα μας. Κάντε κλικ σε περιορισμούς σε αυτόν τον πίνακα και, στη συνέχεια, επιλέξτε Περιστροφή περιστροφής Z. Αυτό θα αποτρέψει την περιστροφή του πουλιού μαζί με την κάμερα σε έναν κύκλο.

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

Ενώ όλα πάνε καλά!

Τώρα ήρθε η ώρα να πάτε στις πτήσεις χαρακτήρων, καλό θα είναι εύκολο.

Πρώτα πρέπει να δημιουργήσετε c # -Script. Δημιουργήστε ένα φάκελο για αυτό (κάντε δεξί κλικ οπουδήποτε στα περιουσιακά στοιχεία και δημιουργήστε το φάκελο "Scripts", κάντε το δεξί κουμπί του ποντικιού και επιλέξτε Δημιουργία\u003e C # script.

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

Χαρακτήρας δημόσιας τάξης: Monobehaviour (δημόσια Rigidbody2D RB, δημόσιο πλωτήρα moveSpeed, δημόσιο float flapheight, // αυτό είναι απαραίτητο για την αρχικοποίηση των κενών εκκίνησης () (rb \u003d getComponent ();) // Η ενημέρωση καλείται μία φορά ανά υποκείμενη ενημέρωση (RB. ταχύτητα \u003d νέο φορέα2 (moveSpeed, rb.Velocity.y); εάν (είσοδος.getmousebuttondowntown (0)) (rb.Velocity \u003d νέος διάνυσμα2 (rb.Velocity.x, flapheight);) εάν (μετασχηματισμός.position.y\u003e 18 || μετασχηματισμό.position.y.< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Αυτός ο κώδικας κάνει δύο πράγματα. Προκαλεί τον χαρακτήρα να προχωρήσει προς τα εμπρός με την ταχύτητα που ορίζουμε στον επιθεωρητή και δημιουργεί ένα αίσθημα πτήσης πουλιών. Η μέθοδος ενημέρωσης () καλείται ξανά σε όλο το παιχνίδι, οπότε όλα όσα βάζετε εδώ θα εκτελεστούν συνεχώς. Σε αυτή την περίπτωση, προσθέτουμε κάποια ταχύτητα στο αντικείμενο μας. Η μεταβλητή RB είναι το σενάριο Rigidbody2D, το οποίο εφαρμόσαμε στο αντικείμενο μας πριν, οπότε όταν γράφουμε RB.Velocity, απευθύνουμε έκκληση στην ταχύτητα του αντικειμένου.

Η πατήστε στην οθόνη ερμηνεύεται από την Ενότητα ως κλικ του ποντικιού εάν χρησιμοποιείτε μια κινητή συσκευή. Μετά το πάτημα, αναγκάζουμε τον χαρακτήρα μια μικρή αναρρίχηση.

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

Η μέθοδος θανάτου () δηλώνεται επίσης ως κοινό, πράγμα που σημαίνει ότι άλλα αντικείμενα και σενάρια θα μπορέσουν να το ονομάσουν. Αυτή η μέθοδος απλά επιστρέφει τη θέση του χαρακτήρα στην αρχή. Θα χρησιμοποιηθεί επίσης κάθε φορά που ο χαρακτήρας θα πετάξει πολύ ψηλά ή χαμηλά. Σύντομα θα καταλάβετε γιατί δηλώνεται ως κοινό. Row rb.Velocity \u003d vector3.zero; Πρέπει να αφαιρέσετε τον παλμό - δεν θέλουμε μετά από κάθε θάνατο ο χαρακτήρας έπεσε πιο γρήγορα και πιο γρήγορα;

Τώρα μπορείτε να αφήσετε το IDE και να προσθέσετε ένα σενάριο ως συστατικό στον χαρακτήρα. Για να το κάνετε αυτό, πρέπει να επιλέξετε το πουλί μας και να κάνετε κλικ στην επιλογή Προσθήκη συνιστωσών\u003e Scripts\u003e Χαρακτήρας. Τώρα μπορούμε να ορίσουμε το moveSpeed \u200b\u200bκαι το Flapheight στον επιθεωρητή (για αυτό και χρειάζεστε δημόσια μεταφορά). Αναθέτουμε μεταβλητές τιμές 3 και 5, αντίστοιχα.

Και περισσότερο: στον επιθεωρητή πρέπει να προσθέσετε μια ετικέτα στον χαρακτήρα. Για να το κάνετε αυτό, κάντε κλικ στην επιλογή Where tag: Untagged γράφεται και στη συνέχεια επιλέξτε Player στην αναπτυσσόμενη λίστα.

Εμπόδια

Προσθέστε τώρα εμπόδια: σωλήνες. Κάποιος στους σωλήνες βρίσκει μανιτάρια, και κάποιος είναι ο θάνατός τους.

Σύρετε το Sprite του σωλήνα στη σκηνή στον τόπο όπου θα πρέπει να είναι το πρώτο εμπόδιο και ονομάστε ότι είναι pipe_up.
Τώρα δημιουργήστε ένα νέο σενάριο που ονομάζεται σωλήνας:

Σωλήνας δημόσιας κλάσης: Monobehaviur (χαρακτήρας ιδιωτικού χαρακτήρα, - μετασχηματισμός.position.x\u003e

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

Η μέθοδος OncolliseEner2d () ονομάζεται κάθε φορά που ο σωλήνας αλληλεπιδρά με τον χαρακτήρα. Μετά από αυτό, καλείται η μέθοδος θανάτου () που δημιουργήθηκε από τον προγραμματισμένο παίκτη στο σημείο εκκίνησης.

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

Ανεστραμμένους σωλήνες

Τώρα έχουμε μόνο έναν σωλήνα Sprite. Ας προσθέσουμε ένα ακόμα. Για να το κάνετε αυτό, κάντε δεξί κλικ στο παράθυρο Ιεραρχίας, κάντε κλικ στο κουμπί Νέο αντικείμενο 2D\u003e Sprite και στη συνέχεια επιλέξτε το Sprite που θέλετε να χρησιμοποιήσετε. Ακόμα πιο εύκολο θα σύρετε απλά το αρχείο στη σκηνή ξανά.

Ονομάστε αυτό το sprite pipe_down. Στον επιθεωρητή στο Sprite Renderer, επιλέξτε την επιλογή Flip Y για να γυρίσετε το σωλήνα ανάποδα. Προσθέστε το ίδιο Rigidbody2D.

Τώρα γράψτε ένα νέο σενάριο C # που ονομάζεται σωληνώθηκε. Σε αυτό θα είναι παρόμοιος κώδικας:

Public Class Piped: Monobehaviour (Ιδιωτικός χαρακτήρας χαρακτήρα, // είναι απαραίτητο να αρχικοποιήσετε την κενή εκκίνηση () (Χαρακτήρας \u003d FindOpjecype ();) // Η ενημέρωση καλείται μία φορά ανά καρέκτη κενή ενημέρωση () (αν - μετασχηματισμός.position.x\u003e 30) ()) Void OncolliseEner2D (Άλλο Collision2D) (εάν (άλλο.gameobject.tag \u003d\u003d "player") (χαρακτήρας.Death ()))))))))

Προκαθιστά

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

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

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

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

Για να το κάνετε αυτό, δημιουργήστε ένα νέο φάκελο "prefabs". Στη συνέχεια, σύρετε το σωλήνα_up και το σωλήνα_down από το παράθυρο της ιεραρχίας στο φάκελο.

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

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

Πρώτα προσθέστε αυτόν τον κώδικα σε μια υπό όρους έκφραση στη μέθοδο ενημέρωσης () της δέσμης ενεργειών, το οποίο αφήσαμε κενό:

Άκυρη ενημέρωση () (εάν (χαρακτήρα.transform.position.position.x - Transform.Position.x\u003e 30) (Float Xran \u003d Random.range (0, 10); Float Yran \u003d Random.range (-5, 5) · παράγει (gameobject, νέο φορέα2 (χαρακτήρα.transform.position.x + 15 + xran, -10 + yran), μετασχηματισμό.

Είναι απαραίτητο να δημιουργηθεί μια περίπτωση του gameobject μας. Το αποτέλεσμα είναι ένα νέο ίδιο αντίγραφο. Στην ενότητα, πάντα όταν χρησιμοποιείτε τη λέξη gameobject, αναφέρεται στο αντικείμενο στο οποίο το σενάριο είναι επί του παρόντος δεμένο με - στην περίπτωσή μας στο σωλήνα.

Δημιουργούμε σωλήνες rebound σε τυχαίες παραλλαγές για να είναι πιο διασκεδαστική.

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

Δημιουργήστε ένα δημόσιο gameObject με το όνομα PipEdown. Στη συνέχεια, ενημερώστε τον κωδικό ως εξής:

Εάν (χαρακτήρας.transform.position.x\u003e Transform.Position.x\u003e 30) (Float Xran \u003d Random.range (0, 10); float yran \u003d τυχαία. (0, 3). Χρήση (gameobject, νέο φορέα2 (χαρακτήρα.transform.position.x + 15 + xran, -11 + yran), μετασχηματισμός .x + 15 + xran, 12 + gapran + yran), μετασχηματισμό.Rotation; Destroy (gameobject);)

Επιστρέφοντας πίσω στην ενότητα και σύρετε το Prefab Prefab από τον φάκελο Prefabami (αυτό είναι σημαντικό!) Στο σημείο όπου είναι γραμμένο "σωλήνας κάτω" (ειδοποίηση, καθώς η θήκη καμήλας μας αντικαθίσταται από ένα κενό σωλήνα Sprite. Αν θυμάσαι, ορίσαμε το σωλήνα κάτω ως δημόσιο gameObject, το οποίο μας δίνει την ευκαιρία να προσδιορίσετε τι είναι αυτό το αντικείμενο από οπουδήποτε - στην περίπτωση αυτή μέσω του επιθεωρητή. Επιλέγοντας ένα προκατασκευασμένο για αυτό το αντικείμενο, είμαστε πεπεισμένοι ότι κατά τη δημιουργία μιας εμφάνισης σωλήνα, θα περιλαμβάνει όλα τα χαρακτηριστικά και το σενάριο που έχουμε προσθέσει νωρίτερα. Δεν δημιουργούμε απλώς sprite, αλλά επανατοποθετήστε ένα αντικείμενο με έναν συλλεκόμενο που μπορεί να σκοτώσει τον χαρακτήρα.

Το μόνο που προσθέτουμε στην ίδια θέση στο σωληνώσιμο σενάριο είναι απλά καταστρέψτε (gameobject) έτσι ώστε ο σωλήνας να διασκορπιστεί όταν η οθόνη εγκαταλείψει το αριστερό σύνορο απελευθερώνεται.

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

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

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

Άπειρη πτήση

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

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

Public GameObject Pipe_up; Public GameObject Pipe_down;

Τότε θα γράψουμε αυτή τη μέθοδο:

Δημόσιο κενό Bucklevel () (STOPTIATE (POOD_DOWN, Νέο διάνυσμα3 (14, 12), μετασχηματισμό. 14), μετασχηματισμό.Rotation). Χρήση (Pipe_up, Νέο διάνυσμα3 (26, -10), μετασχηματισμό.Rotation). Χρήση (Pipe_down, Νέο διάνυσμα3 (38, 10), μετασχηματισμό.Rotation). 38, -14), μετασχηματισμό.Rotation). Χρήση (pipe_down, νέο φορέα3 (50, 16), μετασχηματισμό). Χρέωση (pipe_up, νέο φορέα3 (50, -8), μετασχηματισμό). Νέο διάνυσμα3 (61, 11), μετασχηματισμό.Rotation; STEALIATE (Pipe_up, Νέο διάνυσμα3 (61, -13), μετασχηματισμό));)

Θα το ονομάσουμε μία φορά στη μέθοδο ενημέρωσης () και μία φορά στη μέθοδο θανάτου ().

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

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

Τελικά

Έτσι κάναμε ένα ολόκληρο παιχνίδι! Προσθέστε το μετρητή σημείων, προσπαθήστε να το κάνετε πιο πρωτότυπο και να αυξήσετε την πολυπλοκότητα του παιχνιδιού όπως προωθείται. Δεν θα είναι περιττό να κάνετε ένα μενού. Μια άλλη καλή ιδέα θα καταστρέψει τους σωλήνες στην οθόνη μετά το θάνατο του χαρακτήρα. Μόλις ολοκληρώσετε με αυτό - σκεφτείτε τι είναι έτοιμο για απελευθέρωση στο παιχνίδι Store Play στην τσέπη σας! Μόλις ένα παρόμοιο παιχνίδι έκανε έναν άλλο προγραμματιστή πολύ πλούσιο, και αυτό αποδεικνύει ότι δεν χρειάζεται να είστε προγραμματιστής Genius ή να έχετε έναν πλούσιο εκδότη για την επιστροφή σας. Χρειάζεστε μόνο μια καλή ιδέα και δέκα λεπτά!

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