background image

 

 

 

67

 

ΑΝΑΠΤΥΞΗ  3D ΣΚΟΠΕΥΤΙΚΟΥ  ΠΑΙΧΝΙΔΙΟΥ  ΤΡΙΤΟΥ  ΠΡΟΣΩΠΟΥ  ΠΟΛΛΑΠΛΩΝ 
ΠΑΙΚΤΩΝ  ΤΥΠΟΥ  ROGUELITE 

 

Εικόνα 61 Συγχρονισμός οπτικού εφέ της ήττας ενός παίκτη 

 

Στο script PlayerStats.cs υπάρχουν όλα τα αρχικά στατιστικά του παίκτη (Εικόνα 62). Για να 

γίνει  η  αποφυγή  του  προβλήματος  όπου  ο  ένας  παίκτης  θα  εκτελέσει  κώδικα  από  script  που 
ανήκει σε άλλον παίκτη, πρέπει να γίνει ο  διαχωρισμός τους. Δηλαδή πρέπει να γίνει  ο έλεγχος 
εάν το PhotonView που βρίσκεται στο μοντέλο του παίκτη, ανήκει στο άτομο που το χειρίζεται. Ο 
έλεγχος  αυτός  γίνεται  με  την  ιδιότητα  PhotonView.IsMine  όπου  το  PhotonView  πρέπει  να 
αναφερθεί πρώτα (Εικόνα 63). 
 

 

Εικόνα 62 Στατιστικά παίκτη 

 

Στην  γραμμή  34  (Εικόνα  63)  γίνεται  η  αποθήκευση  του  PhotonView  του  παίκτη  με  την 

συνάρτηση  transform.GetComponent<PhotonView>()  στην  μεταβλητή  pv  τύπου  PhotonView. 
Μετά γίνεται ο έλεγχος “if (!pv.IsMine) return;” ώστε ο υπόλοιπος κώδικας να μην εκτελεστεί από 
τα  άτομα  στα  οποία  δεν  ανήκει  το  μοντέλο.  Αφού  γίνει  ο  έλεγχος  καλούμε  την  συνάρτηση 
GetPermanentUpgrades()  για  να  ανανεώσουμε  τα  στατιστικά  του  παίκτη  με  βάση  τα  upgrades 
που έχει ξεκλειδώσει.