77
ΑΝΑΠΤΥΞΗ 3D ΣΚΟΠΕΥΤΙΚΟΥ ΠΑΙΧΝΙΔΙΟΥ ΤΡΙΤΟΥ ΠΡΟΣΩΠΟΥ ΠΟΛΛΑΠΛΩΝ
ΠΑΙΚΤΩΝ ΤΥΠΟΥ ROGUELITE
Με την ίδια λογική γίνεται ο συγχρονισμός και των γύρων Defense, Parkour, Survival και
FinalGameMode όταν δημιουργούνται εχθροί και όταν ολοκληρώνεται ο γύρος.
4.2.3 Συγχρονισμός όπλων
Τα όπλα έχουν πολλές λειτουργίες που πρέπει να συγχρονιστούν, ώστε οι παίκτες να
βλέπουν τα σωστά όπλα μεταξύ τους, και να εμφανίζονται οι σωστές σφαίρες. Τα scripts που
σχετίζονται με τα όπλα είναι τα: GunPickUp.cs, EquipmentManager.cs, Gun.cs και Projectile.cs.
Το GunPickUp.cs script συγχρονίζει το όπλο όταν ένας παίκτης εξοπλίζεται με αυτό. Στην
αλληλεπίδραση με το όπλο, στέλνεται σε όλους ένα RPC για την εκτέλεση της συνάρτησης
RPC_PickUpGun() που περιέχει το id του παίκτη. Στην συνάρτηση RPC_PickUpGun(), γίνεται η
εύρεση του παίκτη με το id που παραλήφθηκε, και ενημερώνεται η κατοχή του όπλου, ώστε όλοι
οι παίκτες να γνωρίζουν σε ποιον ανήκει το όπλο (Εικόνα 84).
Εικόνα 84 Συγχρονισμός του εξοπλισμού του παίκτη
Το EquipmentManager.cs παρέχει τις λειτουργίες του εξοπλισμού του παίκτη, όπως η
απόκτηση, πτώση και εναλλαγή όπλων. Όταν ο παίκτης αποκτά ένα όπλο πρέπει να το
εμφανίσουμε στα χέρια του μοντέλου και στους υπόλοιπους παίκτες. Άμα ο παίκτης κρατούσε
ήδη ένα όπλο προτού αποκτήσει το καινούργιο, τότε πρέπει να εξαφανίσουμε το παλιό. Οι
λειτουργίες αυτές εκτελούνται στην συνάρτηση EquipGun() (Εικόνα 85) και συγκεκριμένα η
εμφάνιση του όπλου με την συνάρτηση ShowEquipment() ενώ η εξαφάνιση με την συνάρτηση
HideEquipment().
Εκτός
από
αυτές
τις
λειτουργίες,
υπάρχει
και
η
συνάρτηση
SetupGunComponents() για τον συγχρονισμό της ενεργοποίησης και απενεργοποίησης άλλων
component του όπλου. Το component PhotonView αποθηκεύεται στην γραμμή 75 (Εικόνα 85) για
την χρήση του στις υπόλοιπες συναρτήσεις.