63
ΑΝΑΠΤΥΞΗ 3D ΣΚΟΠΕΥΤΙΚΟΥ ΠΑΙΧΝΙΔΙΟΥ ΤΡΙΤΟΥ ΠΡΟΣΩΠΟΥ ΠΟΛΛΑΠΛΩΝ
ΠΑΙΚΤΩΝ ΤΥΠΟΥ ROGUELITE
Στο script RegionScript.cs γίνεται η οπτική εμφάνιση των διαθέσιμων διακομιστών. Έχουμε
το Enum CloudRegionCode για να αντιπροσωπεύει τους διακομιστές, και την λίστα
cloudRegionList για να περιγράφει στον παίκτη το όνομα του κάθε διακομιστή (Εικόνα 53). Με την
συνάρτηση GetRegions() εισχωρούμε την λίστα cloudRegionList στην αναπτυσσόμενη λίστα
(Εικόνα 13). Μέσα σε μια επανάληψη ψάχνουμε σε ποιόν διακομιστή είναι συνδεδεμένος ο
παίκτης, και εμφανίζουμε την ονομασία.
Εικόνα 53 Εμφάνιση διαθέσιμων διακομιστών
Τέλος, στην συνάρτηση Update της Unity, υπολογίζουμε το ping του διακομιστή, για να
είναι ενημερωμένος και ο παίκτης, με την συνάρτηση PhotonNetwork.GetPing() (Εικόνα 54).
Εικόνα 54 Εμφάνιση ping
4.2 Συγχρονισμός καταστάσεων παιχνιδιού
Τα αντικείμενα που έχουν συνεχή κίνηση ή έχουν κώδικες με συναρτήσεις για τον
συγχρονισμό τους μεταξύ των παικτών έχουν από ένα PhotonView το καθένα. Συγκεκριμένα, το
PhotonView το διαθέτουν οι παίκτες, τα όπλα, οι εχθροί, τα power ups, τα κουτιά και το
αντικείμενο που ονομάστηκε Game Manager. Για τον εύκολο συγχρονισμό της τοποθεσίας, της
περιστροφής, και του μεγέθους των αντικειμένων, όπως τα μοντέλο του παίκτη, των εχθρών, και