background image

 

 

 

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.  Για  τον  εύκολο  συγχρονισμό  της  τοποθεσίας,  της 
περιστροφής, και του μεγέθους των αντικειμένων, όπως τα μοντέλο του παίκτη, των εχθρών, και