Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Γεια σου. Σε αυτό το μάθημα θα μιλήσουμε για τις δυνατότητες που μας δίνει η Unity να την κάνουμε να λειτουργεί όπως θέλουμε. Η αλήθεια είναι ότι οι συγκεκριμένες επιλογές είναι αρκετά προχωρημένες και δεν θα τις χρειαστούμε πολύ σύντομα. Πάντως δεν κάνει κακό να τους ρίξεις μια ματιά, καθώς εξηγούμε αρκετά σημαντικά πράγματα, όπως η διαδικασία caching. Στο μενού Edit η επιλογή Unity Preferences ανοίγει το παρακάτω παράθυρο το οποίο μας δίνει τη δυνατότητα να διαμορφώσουμε τη λειτουργία και την εμφάνιση της Unity.
Στην πρώτη καρτέλα General μπορούμε να κάνουμε τις παρακάτω επιλογές Auto Refresh: Όταν ξεκινάμε ένα παιχνίδι στη Unity, δημιουργούμε ένα project. Το project είναι απλά μια δομή που δημιουργεί η Unity για να διαχειρίζεται τα διάφορα αρχεία που θα χρησιμοποιήσουμε στο παιχνίδι μας. Ένα παιχνίδι χρειάζεται πολλά και διάφορα, για παράδειγμα αρχεία, εικόνες, τρισδιάστατα μοντέλα, ήχοι και κώδικας. Όλα αυτά τα διαφορετικά πράγματα η Unity τα θεωρεί assets. Για να τα διαχειριστεί σωστά δημιουργεί μια βάση δεδομένων στην οποία τα αποθηκεύει. Όταν επιλέγουμε το Auto Refresh η Unity θα ενημερώνει αυτόματα τα assets στην βάση δεδομένων της, καθώς τα αλλάζουμε. Load Previous Project on Startup: Επειδή ένα παιχνίδι θέλει πολύ χρόνο για να ολοκληρωθεί. Η Unity για ευκολία μας δίνει τη δυνατότητα να φορτώνεται αυτόματα το τελευταίο project στο οποίο δουλέψαμε. Compress Assets on Import: Όταν αποθηκεύουμε ένα αρχείο στον υπολογιστή μας, αυτό καταλαμβάνει κάποιο χώρο τον οποίο τον μετράμε σε bytes, kilobytes, megabytes, gigabytes κλπ. Τα περισσότερα assets που χρησιμοποιούμε στα παιχνίδια μας καταλαμβάνουν πολύ χώρο. Η Unity για να γλυτώσουμε χώρο τα συμπιέζει. Με αυτή την επιλογή τα assets συμπιέζονται αυτόματα.
OSX Color Picker: Η Unity μπορεί να χρησιμοποιηθεί τόσο σε Windows όσο και στο λειτουργικό Mac. Δυστυχώς τα λειτουργικά αυτά δεν συμφωνούν σε όλα. Ένα από αυτά είναι και τα χρώματα. Με αυτή την επιλογή μπορούμε να πούμε στη Unity ποια χρώματα να χρησιμοποιήσει, του Mac ή των Windows. Disable Editor Analytics: Όπως αναφέρεται στο site της Unity, ο Editor στέλνει ανώνυμες πληροφορίες σχετικά με τη χρήση του Editor προκειμένου να τον βελτιώσουν. Μας ενημερώνει επίσης το site ότι για την αποστολή χρησιμοποιείται το Google Analytics. Αν δεν θέλουμε να στέλνονται αυτές οι πληροφορίες, επιλέγουμε το Disable Editor Analytics. Show Asset Store search: Όταν ψάχνουμε στο παράθυρο του project για να βρούμε κάποιο asset, με αυτή την επιλογή αυτή η Unity εμφανίζει τον αριθμό των αντίστοιχων assets που υπάρχουν στο ηλεκτρονικό κατάστημα της Unity. Verify Saving Assets: Η Unity αποθηκεύει αυτόματα όλα τα assets, όταν κλείνουμε το project. Αν για κάποιο λόγο θέλουμε να έχουμε τον έλεγχο για το ποιο asset θα αποθηκεύει και ποιο όχι, επιλέγουμε το Verify Saving Assets. Editor Skin: Αν δεν μας αρέσουν τα χρώματα του editor και αν έχουμε την έκδοση (Plus/ Pro), μπορούμε να τα αλλάξουμε. Enable Alpha Numeric Sorting: Μετά την εγκατάσταση η Unity εμφανίζει μας δίνει την δυνατότητα να ταξινομήσουμε τα αντικείμενα της σκηνής μόνο με βάση τη θέση τους ( transform ). Με την επιλογή αυτή προστίθεται η δυνατότητα ταξινόμησης αλφαριθμητικά. παρακάτω επιλογές: Στην επόμενη καρτέλα, External Tools, έχουμε τις
External Script Editor: Ένα από τα πιο σημαντικά στοιχεία στο παιχνίδι μας, αν όχι το σημαντικότερο, είναι η λογική του, το gameplay. Αυτό είναι που το κάνει ενδιαφέρον ή αδιάφορο. O editor της Unity μας δίνει την δυνατότητα να κάνουμε πάρα πολλά πράγματα, όσον αφορά την λογική του παιχνιδιού. Αργά ή γρήγορα όμως, είτε μας αρέσει είτε όχι, θα πρέπει να γράψουμε κώδικα. Τα αρχεία, στα οποία αποθηκεύουμε τον κώδικα μας, λέγονται scripts. Η Unity μας δίνει τη δυνατότητα να επιλέξουμε το πρόγραμμα με το οποία θα επεξεργαζόμαστε τα script αρχεία. Η Unity υποστηρίζει τα MonoDevelop, Xamarin Studio, Visual Studio (Express) and Visual Studio Code. External Script Editor Args: Τα προγράμματα, με τα οποία επεξεργαζόμαστε τα scripts, θέλουν συχνά κάποιες πληροφορίες για το πώς θέλουμε να ανοίξουν το αρχείο. Οι πληροφορίες αυτές λέγονται παράμετροι. Με την επιλογή αυτή επιλέγουμε λοιπόν τις παραμέτρους που θέλουμε η Unity να περάσει στο πρόγραμμα που θα ανοίξει το script. Add.unityproj s to.sln: Δεν έχουν μόνο τα λειτουργικά συστήματα (windows, mac os, linux κλπ) παραξενιές. Και τα προγράμματα με τα οποία επεξεργαζόμαστε τα scripts έχουν τις δικές τους παραξενιές. Μια από αυτές είναι, αν θα βάλουν στο τέλος την κατάληξη του αρχείου. Η κατάληξη δεν είναι τίποτε άλλο από μερικά
γράμματα που δηλώνουν το είδος του αρχείου, για παράδειγμα το.txt σημαίνει ότι το αρχείο περιέχει απλό κείμενο. Η Unity αναλαμβάνει αυτές τις ιδιαιτερότητες. Με την επιλογή αυτή μας δίνει τη δυνατότητα να αποφασίσουμε εμείς τι θέλουμε να κάνει. Editor Attaching: Τα αρχεία κώδικα, τα scripts, περιέχουν σίγουρα δύο πράγματα: τη λογική του παιχνιδιού και σφάλματα, που για κάποιο περίεργο λόγο οι προγραμματιστές τα λέμε bugs («ζουζούνια»). Παρά τα όσα νομίζει ο απλός κόσμος, οι προγραμματιστές τον περισσότερο χρόνο τους τον περνάνε σκοτώνοντας «ζουζούνια» και όχι γράφοντας κώδικα. Με την επιλογή αυτή η Unity, μας επιτρέπει να κάνουμε debugging στα scripts μέσα από τον editor, το οποίο είναι εξαιρετικά χρήσιμο. Image application: Όπως και με τα αρχεία κώδικα έτσι και με τα αρχεία εικόνων η Unity μας δίνει τη δυνατότητα να επιλέξουμε με ποιο πρόγραμμα θα ανοίγει το αρχείο εικόνας όταν κάνουμε διπλό κλικ στο συγκεκριμένο asset. Αν δεν επιλέξουμε κάτι, τότε η Unity αποφασίζει με βάση της κατάληξη. Revision Control Diff/Merge: Τα παιχνίδια, εκτός από πολύ χρόνο, συχνά χρειάζονται και πολύ κόσμο. Πρέπει λοιπόν με κάποιο τρόπο να μπορούν να συνεργαστούν. Για αυτό τοποθετούμε όλα τα assets σε έναν υπολογιστή, που τον λέμε asset server. Έτσι όποιος θέλει να αλλάξει ένα asset το παίρνει από τον server και το ξαναβάζει πίσω. Το πρόβλημα είναι ότι μερικές φορές ένα asset μπορεί να το αλλάξουν πάνω από ένας. Τότε θα πρέπει να αποφασίσουμε ποιο asset είναι το σωστό. Υπάρχουν διάφορες εφαρμογές που κάνουν αυτή τη δουλειά. Η Unity μας επιτρέπει να επιλέξουμε με ποιο πρόγραμμα θέλουμε να λύνονται αυτές οι διαφορές. Η καρτέλα Colors μας επιτρέπει να αλλάξουμε τα χρώματα που χρησιμοποιεί ο editor για να μας δείξει διάφορες πληροφορίες.
Η καρτέλα Keys μας επιτρέπει να επιλέξουμε με πιο χαρακτήρα του πληκτρολογίου θέλουμε να εκτελείται η κάθε ενέργεια.
Μία από τις πιο «βαριές» εργασίες που πρέπει να κάνει η Unity είναι οι υπολογισμοί για τον φωτισμό της σκηνής μας. Η διαδικασία υπολογισμού του φωτισμού είναι πολύπλοκη και θα την δούμε αναλυτικά αλλού. Η διαδικασία υπολογισμού του γενικού φωτισμού λέγεται Global Illumination. Από εκεί προέρχεται και το GI. Από την σειρά αυτή παράγονται assets που βοηθούν στην σωστή απεικόνιση της σκηνής, όταν τρέχει το παιχνίδι. Τα assets αυτά θέλουν πολύ χρόνο να ετοιμαστούν και καταλαμβάνουν πολύ χώρο. Η Unity για να κερδίσουμε χρόνο αποθηκεύει τα assets αυτά σε έναν χώρο στο σκληρό μας δίσκο, που τον ονομάζει GI Cache. Όταν δεν έχει αλλάξει κάτι στη σκηνή, χρησιμοποιεί αυτά τα assets. Η καρτέλα GI Cache μας δίνει τη δυνατότητα να ρυθμίσουμε την GI Cache. Μπορούμε να ρυθμίσουμε πόσο χώρο θα καταλαμβάνει στο δίσκο μας (Maximum Cache Size (GB)), την θέση στην οποία θα αποθηκευτούν τα αρχεία (Custom cache location) και αν θέλουμε να συμπιέζονται αυτόματα (Cache compression) για να κερδίσουμε χώρο. Σε περίπτωση που θέλουμε να έχουμε πρόσβαση σε αυτά τα αρχεία δεν πρέπει να έχουμε επιλεγμένη την αυτόματη συμπίεση. Τέλος μπορούμε, αν θέλουμε, να «καθαρίσουμε» την cache πατώντας το κουμπί Clean Cache.
Η επόμενη καρτέλα αφορά τα παιχνίδια που χρησιμοποιούν γραφικά δύο διαστάσεων. Ενώ είναι βολικό να χρησιμοποιούμε ξεχωριστές εικόνες (sprites) για κάθε χαρακτήρα ή αντικείμενο, αυτό έχει μεγάλη απώλεια μνήμης στην κάρτα γραφικών. Είναι λοιπόν καλύτερο να βάζουμε όλες τα sprites σε ένα αρχείο, το οποίο το ονομάζουμε sprite atlas. Με την μπάρα Max Sprite Atlas Cache Size (GB) μπορούμε να ορίσουμε πόσο χώρο θα καταλαμβάνει το αρχείο αυτό στον σκληρό μας δίσκο. Τέλος στην επόμενη καρτέλα μπορούμε να επιλέξουμε να χρησιμοποιήσουμε έναν Cache Server, δηλαδή έναν υπολογιστή που η δουλειά του είναι να κάνει cache τα assets.
Οι περισσότερες από τις παραπάνω επιλογές είναι αρκετά προχωρημένες και δεν θα τις χρειαστούμε σύντομα. Καλό είναι όμως να ξέρουμε που θα τις βρούμε, αν τις χρειαστούμε. Προς το παρόν σας χαιρετώ μέχρι το επόμενο μάθημα μας. Σας περιμένω φίλοι μου.