Το προφίλ μας στο Google Plus
1

H μηχανή δημιουργίας παιχνιδιών Unity

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

Με το που ξεκινάμε τη Unity, εμφανίζεται ένα παράθυρο που μας προτρέπει να επιλέξουμε να συνεχίσουμε να δουλεύουμε σε ένα υπάρχον project ή να δημιουργήσουμε ένα νέο. Η δημιουργία project δεν προϋποθέτει την ύπαρξη assets. Αρκεί να δηλώσουμε ένα path, κάτω από το οποίο θα δημιουργηθεί το folder structure που θα δηλώνει την ύπαρξη του project μας, καθώς και τον τύπο του (2D ή 3D). Η αλήθεια είναι ότι η επιλογή του τύπου του project δεν κάνει κάποια ουσιαστική διαφορά, μια που μέσα από τη μηχανή μπορούμε να περάσουμε από 2D mode σε 3D mode και το αντίστροφο, όποτε κι όσες φορές το θελήσουμε.

Το παράθυρο δημιουργίας νέου project, στη Unity.

Το παράθυρο δημιουργίας νέου project, στη Unity.

Επιλέγοντας το κουμπί Asset Packages, η μηχανή θα μας δώσει τη δυνατότητα να κάνουμε import στο καινούργιο μας project πακέτα με assets που υπάρχουν στον υπολογιστή μας. Ακόμη και να μην έχουμε δουλέψει ποτέ ξανά με τη μηχανή στο παρελθόν, είναι πολύ πιθανό να δούμε ήδη εγκατεστημένα πακέτα στο σύστημά μας. Δεν υπάρχει λόγος ανησυχίας, βέβαια, μια κι αυτά έρχονται με την εγκατάσταση της μηχανής. Περισσότερα για τα πακέτα θα πούμε αργότερα.

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

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

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

Η πρώτη, καλή γνωριμία
Ας ξεκινήσουμε από το κέντρο της οθόνης, στην περιοχή 5 της εικόνας. Στο παράθυρο αυτό βλέπουμε τη σκηνή (scene). Εδώ έχουμε τη δυνατότητα να επιλέγουμε και να αλληλεπιδράσουμε με τα αντικείμενα (game objects) που έχουμε τοποθετήσει στη σκηνή μας. Στην πάνω δεξιά γωνία του παραθύρου μπορούμε πάντα να δούμε το λεγόμενο gizmo της σκηνής. Χάρη σ’ αυτό παρατηρούμε τη σκηνή από ένα συγκεκριμένο άξονα (κάνοντας κλικ στο αντίστοιχο χρώμα του) και αλλάζουμε μεταξύ των δύο τύπων προβολής: προοπτικής και ορθογραφικής ή ισομετρικής (perspective και orthographic ή isometric αντίστοιχα). Η αλλαγή του τύπου προβολής γίνεται αν κάνουμε κλικ στον κύβο στη μέση του gizmo ή στο κείμενο κάτω από αυτό.

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

  • Από το dropdown που γράφει Shaded, επιλέγουμε τον τρόπο απεικόνισης (render) των game objects. Θα μας απασχολήσουν τρεις επιλογές:
  • * Shaded, για να βλέπουμε τις επιφάνειες του μοντέλου με τις υφές (textures) τους
    * Wireframe, για να βλέπουμε τον σκελετό των μοντέλων
    * Shaded Wireframe, μείξη των δύο προαναφερθέντων, στην οποία φαίνονται και ο σκελετός των μοντέλων και οι υφές τους.

  • Στη συνέχεια παρατηρούμε το κουμπί το οποίο εναλλάσσει την οπτική της σκηνής από 3D σε 2D. Η εναλλαγή σε 2D ουσιαστικά μας βάζει να δούμε τη σκηνή από συγκεκριμένη οπτική γωνία και με την ορθογραφική επιλογή στην κάμερα. Σημειώστε αυτό το κουμπί γιατί θα το χρησιμοποιούμε για να δουλεύουμε στο UI των παιχνιδιών μας.
  • Με το επόμενο κουμπί μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε τα φώτα που έχουμε τοποθετήσει στη σκηνή μας. Αυτό μπορεί να φανεί χρήσιμο όταν θελήσουμε να κάνουμε αλλαγές σε μια πολύ σκοτεινή πίστα. (Η αλήθεια είναι ότι οι σκοτεινές πίστες στα παιχνίδια δεν στηρίζονται στην έλλειψη φωτισμού, αλλά σε πηγές “μαύρου φωτός”).
  • Το επόμενο κουμπί ενεργοποιεί ή απενεργοποιεί τις πηγές ήχου που υπάρχουν στη σκηνή μας.
  • Κάνοντας κλικ στο τελευταίο κουμπί στην αριστερή ομάδα, μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε το λεγόμενο skybox. Ουσιαστικά το skybox είναι ένα πολύ μεγάλο κουτί, στις επιφάνειες του οποίου έχουν προσκολληθεί (από τη μέσα μεριά) οι εικόνες που θα αντιπροσωπεύουν τον ουρανό της σκηνής μας. Ως gizmos ονομάζονται τα εικονίδια που εμφανίζονται στη σκηνή μας και δηλώνουν ότι, π.χ., ένα game object έχει ένα component τύπου light σ’ αυτό (θα εμφανιστεί μια λάμπα με το χρώμα του φωτός, στο σημείο που βρίσκεται το φως στη σκηνή).
  • Στην άλλη άκρη της μπάρας, συνεχίζουμε με το κουμπί που ενεργοποιεί και απενεργοποιεί την ορατότητα των gizmos στη σκηνή.
  • Τέλος, η Unity μάς επιτρέπει να ψάξουμε για συγκεκριμένα αντικείμενα στη σκηνή μας μέσω του search box, στη δεξιά μεριά της μπάρας.

Στο ίδιο παράθυρο υπάρχει ακόμα ένα tab, ονόματι Game. Σε αυτό μπορούμε να δούμε τι δείχνει η κύρια κάμερα που υπάρχει στη σκηνή μας. Ουσιαστικά, δείχνει το τι θα βλέπει ο παίχτης όταν τρέχει το παιχνίδι.

Ας πάμε αριστερά, στο παράθυρο Hierarchy (περιοχή 4 στο screenshot μας). Εδώ υπάρχει μια ιεραρχική λίστα όλων των αντικειμένων που υπάρχουν στην σκηνή μας. Μπορούμε να τα επιλέξουμε και να τους αλλάξουμε θέση στη λίστα, κάνοντας drag and drop. Ένα game object δύναται να έχει άλλα game objects ως παιδιά του. Όταν ισχύει αυτό, αριστερά από το όνομα του parent game object, εμφανίζεται ένα βελάκι που συμπτύσσει ή αναδιπλώνει τη λίστα με τα παιδιά (ή αλλιώς με τα game objects απογόνους). Ένα χρήσιμο dropdown στην αριστερή πάνω γωνία είναι το Create, που μας εμφανίζει μια λίστα από όλα τα game objects που μπορούν να προστεθούν στη σκηνή μας. Δίπλα του υπάρχει ένα search box για τα ονόματα των αντικειμένων που βρίσκονται σε αυτή τη λίστα.

Συνεχίζοντας κάτω, στην περιοχή 7 του screenshot και στην καρτέλα Project, βλέπουμε όλα τα assets που έχουν προστεθεί στο project μας. Αυτή τη στιγμή δεν έχουμε προσθέσει κάποιο για να εμφανιστεί. Έχουμε και εδώ ένα dropdown με όνομα Create, αυτό όμως έχει διαφορετική λειτουργία από εκείνο που είδαμε προηγουμένως. Από το συγκεκριμένο δημιουργούμε assets για το παιχνίδι μας, όπως, π.χ., νέα αρχεία κώδικα. Στα δεξιά της μπάρας έχουμε ακόμα ένα βολικό search box, για τα assets του project μας αυτή τη φορά.

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

Στα δεξιά της οθόνης και στην περιοχή 6 του screenshot βρίσκεται ο Inspector. Σε αυτόν μπορούμε να δούμε τα επιμέρους components που έχουν προστεθεί στο επιλεγμένο game object (στην εικόνα έχει ήδη επιλεχθεί η κάμερα, κάνοντας κλικ στο αντίστοιχο όνομα στο παράθυρο Hierarchy).

Τι στο καλό είναι όμως αυτό το “game object”; Ώρα για εξηγήσεις!

Στην Unity, κάθε αντικείμενο που υπάρχει στη σκηνή μας είναι ένα game object. Τα game objects από μόνα τους δεν κάνουν κάτι. Είναι απλά containers. Σε αυτά θα προσθέτουμε τα components, δηλαδή τα εξαρτήματα ή αλλιώς τα συστατικά, που χρειάζονται κάθε φορά, ώστε να ολοκληρώνουμε τη λειτουργικότητα του αντικειμένου που θέλουμε. Για παράδειγμα, να υπενθυμίσουμε ότι στην εικόνα βλέπουμε την κάμερα της σκηνής μας. Στον Inspector μπορούμε να διακρίνουμε ότι το game object της κάμερας περιλαμβάνει πέντε components:

  • Ένα transform, που είναι υπεύθυνο για τη θέση (position), την περιστροφή (rotation) και την κλίμακα (scale) του αντικειμένου. Είναι αδύνατο να υπάρχει game object στη σκηνή μας και να μην έχει ένα component τέτοιου τύπου.
  • Ένα component τύπου Camera, που περιλαμβάνει τις ιδιότητες της κάμερας και μας επιτρέπει να την παραμετροποιήσουμε.
  • Άλλα τρία components, τύπων GUI Layer, Flare Layer και Audio Listener, που δεν επιτρέπουν παραμετροποίηση αλλά είναι απαραίτητα για τη μηχανή. Για παράδειγμα, το τελευταίο είναι υπεύθυνο για το τι και από πού θα ακούει ο παίκτης (μιας και κοιτάζει μέσω της κάμερας).

Κατά βάση, κάθε Component στη Unity είναι ένα script. Άλλα είναι ενσωματωμένα και μας τα παρέχει η μηχανή, άλλα έχουν δημιουργηθεί από εμάς. Στα επόμενα τεύχη θα μάθουμε πώς να φτιάχνουμε τα δικά μας scripts και να παρουσιάζουμε προς αλλαγή τις ιδιότητές τους.

Συνεχίζουμε στην περιοχή 3 του screenshot, όπου και παρατηρούμε τρία κουμπιά. Είναι υπεύθυνα για την εκτέλεση του παιχνιδιού, αλλά σε περιβάλλον μηχανής. Το πρώτο εκτελεί το παιχνίδι και φέρνει το focus στο παράθυρο “Game”. Το δεύτερο παγώνει το παιχνίδι στο σημείο που είμαστε κατά την εκτέλεσή του, ενώ το τρίτο προχωράει το παιχνίδι κατά ένα frame, όταν αυτό είναι παγωμένο. Το τελευταίο βοηθάει πολύ σε περίπτωση που έχουμε να κάνουμε με physics.

Επί τη ευκαιρία, μια μικρή παρένθεση. Φανταστείτε τι θα γινόταν σε περίπτωση που, για να δοκιμάσουμε κάτι στο καινούργιο μας παιχνίδι, θα έπρεπε κάθε φορά που προσθέταμε κάτι, να χρειαζόταν να κάνουμε build το παιχνίδι. Όσο το παιχνίδι θα ήταν μικρό, δεν θα υπήρχε πρόβλημα. ‘Οταν όμως το μέγεθος θα άρχιζε να ξεφεύγει, άλλο τόσο θα ξέφευγε και η ώρα που θα χρειαζόταν η διαδικασία. Ένας εμπειρικός κανόνας είναι ότι αν χρειαστούμε πάνω από 5 δευτερόλεπτα να τεστάρουμε μια μικρή αλλαγή στο παιχνίδι, το testing γίνεται ανυπόφορο :/

Η Unity μάς επιτρέπει να τρέχουμε το παιχνίδι μας μέσα από τη μηχανή και να κάνουμε αλλαγές on the fly, ακόμη και όταν το παιχνίδι τρέχει. Χάρη σ’ αυτή τη δυνατότητα μπορούμε να κάνουμε μικρές (ή μεγάλες) αλλαγές στις παραμέτρους του παιχνιδιού, χωρίς να ξοδεύουμε άπειρες ώρες κάνοντας compile και build. Προσοχή! Όταν το παιχνίδι τρέχει οι τιμές που αλλάζουμε στα αντικείμενα της σκηνής μας δεν αποθηκεύονται και δεν θα είναι διαθέσιμες όταν σταματήσουμε την εκτέλεσή του.

Στην αριστερή πάνω γωνία του παραθύρου στη Unity (στην περιοχή 1 της εικόνας), έχουμε πέντε στο πλήθος κουμπιά. Τα shortcuts των κουμπιών αυτών είναι τα πλήκτρα [Q], [W], [E], [R], [T] αντίστοιχα. Με επιλεγμένο το πρώτο κουμπί, μπορούμε να μετακινήσουμε το viewport (όχι την κάμερα) του παραθύρου της σκηνής μας, κάνοντας κλικ και σέρνοντας το ποντίκι μας. Κρατώντας πατημένο το [Alt] και σέρνοντας, μπορούμε να περιστρέψουμε το viewport στο σημείο που βρίσκεται, ενώ σέρνοντας με δεξί κλικ μπορούμε να κάνουμε zoom in/out. Το τελευταίο το επιτυγχάνουμε και με τη ροδέλα του ποντικιού.

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

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

Με τα τέσσερα τελευταία αυτά κουμπιά μπορούμε να αλλάξουμε τις ιδιότητες του transform component, ενός game object. Το πρώτο κουμπί εμφανίζει το gizmo της τοποθέτησης. Με αυτό μπορούμε να μετακινήσουμε το αντικείμενό μας σε συγκεκριμένους άξονες (κάνοντας κλικ σε ένα και σέρνοντας το ποντίκι) ή σε ζευγάρι αυτών (π.χ., ταυτόχρονη μετακίνηση στους άξονες x και z). Το δεύτερο κουμπί εμφανίζει το gizmo της περιστροφής. Δουλεύει αντίστοιχα με το gizmo της τοποθέτησης. Το τρίτο είναι το gizmo της κλίμακας. Με αυτό μπορούμε να μεγεθύνουμε ή να συρρικνώσουμε τα αντικείμενά μας ως προς έναν ή όλους τους άξονες. Το τελευταίο κουμπί της ομάδας θα μας απασχολεί μόνον όταν έχουμε να κάνουμε με γραφικά 2D, οπότε ας το αφήσουμε προς το παρόν.

Τέλος, στην περιοχή 2 της εικόνας, βρίσκονται άλλα δύο κουμπιά. Αυτά έχουν πιο εξειδικευμένη χρήση. Επιγραμματικά να αναφέρουμε ότι το δεύτερο εναλλάσσει μεταξύ των τοπικών και των καθολικών αξόνων. Βοηθάει σε περίπτωση που θέλουμε να δούμε την περιστροφή ενός child object (πιο μέσα στην ιεραρχία της σκηνής) σε σχέση με τους καθολικούς άξονες (μιας και τα transforms των children ενός game object έχουν τη θέση τους, την περιστροφή τους και την κλίμακά τους σε σχέση με τις αντίστοιχες ιδιότητες του γονικού αντικειμένου). Το πρώτο τοποθετεί το σημείο περιστροφής του αντικειμένου είτε στη μέση (center) είτε στο πραγματικό του κέντρο (όπως αυτό ορίζεται από το πρόγραμμα που δημιουργήθηκε το μοντέλο, για παράδειγμα).

Πολύ χρήσιμο κουμπί στη Unity είναι το [F]. Αντιστοιχεί στη λειτουργία Frame Selected του μενού Edit. Όταν έχουμε επιλεγμένο ένα αντικείμενο στην ιεραρχία και έχουμε το ποντίκι μας στο παράθυρο της σκηνής, πατώντας το πλήκτρο [F] το viewport θα επικεντρωθεί και θα μας δείξει το επιλεγμένο game object. Αντίστοιχα, αν το ποντίκι βρίσκεται πάνω από το παράθυρο της ιεραρχίας, η λίστα θα σκρολάρει για να μας δείξει το επιλεγμένο αντικείμενο (σε περίπτωση που η λίστα είναι μεγάλη και δεν το βρίσκουμε εύκολα).

Ας μιλήσουμε λίγο για τα πακέτα που εγκαταστάθηκαν με τη μηχανή.

Τα πακέτα που έχουν συμπεριληφθεί περιλαμβάνουν γραφικά και λειτουργίες (κώδικα) που μπορούν να βοηθήσουν στο prototyping ενός παιχνιδιού. Για παράδειγμα, το πακέτο Characters περιλαμβάνει κώδικα και μοντέλα για τη μετακίνηση του χαρακτήρα του παίκτη στην πίστα. Η τρέχουσα έκδοση περιέχει δύο prefabs, ένα για κίνηση χαρακτήρα με κάμερα τρίτου προσώπου κι ένα για κίνηση χαρακτήρα με κάμερα πρώτου προσώπου. Άλλο ένα παράδειγμα αποτελεί το πακέτο Cameras. Περιλαμβάνει έτοιμες προς χρήση κοινές (που χρησιμοποιούνται από πολλά παιχνίδια) κάμερες. Τα πακέτα αυτά, πέρα από τον κώδικα και τα γραφικά (ή ήχους, εικόνες κ.λπ.) περιέχουν προκατασκευασμένα game objects, έτοιμα προς χρήση. Αυτά είναι γνωστά ως Prefabs. Τα asset packages μπορούν να εισαχθούν στα projects μας είτε από το asset store (θα το βρείτε στο μενού Window), αφού τα κατεβάσουμε, είτε από το μενού Assets –> Import Package.

Το asset store είναι η μεγαλύτερη πηγή assets για τη Unity που υπάρχει στο Διαδίκτυο.

Το asset store είναι η μεγαλύτερη πηγή assets για τη Unity που υπάρχει στο Διαδίκτυο. Είναι προσπελάσιμη από browser (στο https://www.assetstore.unity3d.com) ή από παράθυρο στην ίδια τη μηχανή (Window –> Asset Store).

Σημαντική έννοια στον κόσμο της Unity είναι το Prefab. Τα prefabs είναι στην ουσία assets, που περιλαμβάνουν game objects με τα components που τους έχουμε ορίσει μαζί με τις αρχικές τιμές αυτών. Mπορούμε να τα τοποθετήσουμε εύκολα στη σκηνή (και περισσότερα από ένα αν χρειαστεί), είτε σέρνοντάς τα από το παράθυρο Project είτε μέσω κώδικα. Για παράδειγμα, κομμάτια της πίστας (οι τοίχοι ενός σπιτιού, φράχτες, τα δέντρα κ.λπ.) ή οι εχθροί, θα είναι αποθηκευμένα ως prefabs ώστε να μπορούν να χρησιμοποιηθούν πολλές φορές χωρίς να χρειαστεί να επαναλάβουμε τη διαδικασία δημιουργίας τους από την αρχή. Το καλό με αυτά είναι ότι αν αλλάξουμε την τιμή μιας ιδιότητάς τους σε κάποιο prefab (επιλέγοντάς το στο παράθυρο project), η τιμή θα αλλάξει σε όλα τα υπάρχοντα instances στη σκηνή. Αν για κάποιο λόγο δεν το επιθυμούμε όμως, υπάρχει τρόπος να το απαγορεύσουμε.

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

  1. Στο project που δημιουργήσαμε, στο μενού Assets –> Import Packages εισάγουμε (Import) τα πακέτα Cameras, Characters και Prototyping.
  2. Στο παράθυρο Hierarchy, ακολουθούμε τη διαδρομή Create –> 3D Object –> Terrain. Δημιουργούμε έτσι έδαφος για να περπατήσει ο χαρακτήρας μας.
  3. Στο παράθυρο Project (πλέον, μπορούμε να δούμε ότι έχουν προστεθεί φάκελοι με assets) και στον φάκελο Assets/Standard Assets/Cameras/Prefabs, βλέπουμε τέσσερα αντικείμενα τα οποία είναι έτοιμα prefabs. Σέρνουμε το FreeLookCameraRig στο παράθυρο Hierarchy για να το προσθέσουμε στη σκηνή. Αυτή τη στιγμή, στη σκηνή υπάρχουν δύο κύριες κάμερες, πράγμα που θα κάνει τη Unity να φρικάρει όταν πάμε να “τρέξουμε” τη σκηνή.
  4. Στο παράθυρο Hierarchy επιλέγουμε το game object με όνομα Main Camera και το διαγράφουμε με το Delete.
  5. Στο παράθυρο Project της Unity, πηγαίνουμε στο φάκελο Assets/Standard Assets/Characters/ThirdPersonCharacter/Prefabs και προσθέτουμε στη σκηνή ένα ThirdPersonController prefab, σέρνοντάς το στο παράθυρο Hierarchy.
  6. Σε περίπτωση που ο χαρακτήρας (ονομάζεται Ethan) είναι κάτω από το terrain (πατάμε [F] για να εστιάσει η κάμερα σε αυτόν), αν πατήσουμε Play θα δούμε ότι η βαρύτητα που υπάρχει στη σκηνή τον τραβάει κάτω. Για να λύσουμε το πρόβλημα, μέσω του transform gizmo (κουμπί [W]) τον μετακινούμε πάνω από το terrain που προσθέσαμε. Η μετακίνηση πρέπει να γίνει στη σκηνή και όχι στην ιεραρχία,αφού έχουμε σταματήσει την εκτέλεση του παιχνιδιού πατώντας Stop ή [Ctrl+P].
  7. Για να υποχρεώσουμε την κάμερα να ακολουθεί τον παίκτη, πρέπει να δούμε τις ιδιότητές της στον Inspector. Την επιλέγουμε στο παράθυρο Hierarchy.
  8. Στον Inspector βλέπουμε ότι η κάμερα αποτελείται από τέσσερα components. Αυτό που μας αφορά είναι το τρίτο κατά σειρά, ονόματι FreeLookCam. Η πρώτη ιδιότητά του ονομάζεται Target και δέχεται ως τιμή ένα αντικείμενο τύπου Transform. Σε αυτή την ιδιότητα πρέπει να ορίσουμε το αντικείμενο του game object του χαρακτήρα, που βάλαμε λίγο πριν στη σκηνή. Αυτό γίνεται με δύο τρόπους:
  9. * Ο πρώτος είναι να πατήσουμε στο κυκλάκι στα δεξιά της ιδιότητας. Αυτό θα εμφανίσει ένα παράθυρο στο οποίο μπορούμε να κάνουμε την επιλογή μας. Περιέχει δύο καρτέλες. Η καρτέλα Scene μάς δείχνει όλα τα αντικείμενα που μπορούμε να αναθέσουμε ως τιμή στην ιδιότητα και βρίσκονται στη σκηνή. Η καρτέλα Assets θα μας δείξει μια λίστα με όλα τα αντικείμενα που υπάρχουν στο project και μπορούμε ν’ αναθέσουμε ως τιμή στην ιδιότητα. Το ότι δεν εμφανίζει τίποτα αυτή τη στιγμή οφείλεται στο ότι τα αντικείμενα δεν έχουν αρχικοποιηθεί ακόμα, δηλαδή δεν έχουν προστεθεί στη σκηνή. Από την καρτέλα Scene μπορούμε να επιλέξουμε το ThirdPersonController, με διπλό κλικ.
    * Ο άλλος και πιο εύκολος τρόπος είναι να σύρουμε το ThirdPersonController, από το παράθυρο Hierarchy στο πεδίο της ιδιότητας Target του script. Αυτό θα αναθέσει την αναφορά του αντικειμένου αυτόματα.

  10. Πατώντας Play (ή [Ctrl+P]) για να τρέξουμε το παιχνίδι, πλέον θα δούμε ότι η κάμερα ακολουθεί τον Ethan και μπορούμε να τον κινήσουμε με τα [W], [A], [S], [D], [Space], [Ctrl] και [Shift].

Μια και η πίστα είναι λίγο άδεια, ας προσθέσουμε μερικά εμπόδια. Αυτά βρίσκονται στον φάκελο Assets/Standard Assets/Prototyping/Prefabs. Με την ίδια γνωστή διαδικασία του drag and drop προσθέτουμε αντικείμενα σε διάφορες θέσεις πάνω στο terrain. Αν θελήσουμε να τοποθετήσουμε κάποιο αντικείμενο κατευθείαν σε ένα συγκεκριμένο σημείο στη σκηνή μας, μπορούμε αντί να το σύρουμε στο παράθυρο της ιεραρχίας, να το σύρουμε στο παράθυρο της σκηνής.

Ο Ethan δεν μπορεί να περάσει μέσα από τα εμπόδια (είναι ήδη σεταρισμένα, όντας prefabs) και σε αυτό βοηθάει η ενσωματωμένη μηχανή physics. Όπως προαναφέραμε, τα assets που έρχονται με τη Unity κάνουν πολύ καλά τη δουλειά τους όταν θέλουμε να δημιουργήσουμε το πρωτότυπο ενός παιχνιδιού.

Η 'ολοκληρωμένη' πίστα μας.

Η “ολοκληρωμένη” πίστα μας.

Η μηχανή Unity και η λειτουργικότητά της είναι τεράστια και είναι δυστυχώς αδύνατον να καλυφθεί πλήρως στις λίγες σελίδες του παρόντος άθρου. Υπάρχει όμως ένα αναλυτικότατο –και τρομακτικά μεγάλο, θα λέγαμε– manual, στη διεύθυνση http://docs.unity3d.com/Manual/UnityManual.html. Είναι διαθέσιμο και offline, κατά την εγκατάσταση της μηχανής.

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

One Response to “H μηχανή δημιουργίας παιχνιδιών Unity”

  1. manthos | 31/03/2016 at 17:43

    Πολύ ωραίο άρθρο, ανυπομονώ για το επόμενο!

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων