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
που έχει ξεκλειδώσει.