70
ΑΝΑΠΤΥΞΗ 3D ΣΚΟΠΕΥΤΙΚΟΥ ΠΑΙΧΝΙΔΙΟΥ ΤΡΙΤΟΥ ΠΡΟΣΩΠΟΥ ΠΟΛΛΑΠΛΩΝ
ΠΑΙΚΤΩΝ ΤΥΠΟΥ ROGUELITE
Το script ThirdPersonController.cs ελέγχει όλους τους μηχανισμούς του παίκτη, όπως την
κίνηση, το άλμα, το dash, τον εντοπισμό αντικειμένων, την βαρύτητα και τις συγκρούσεις. Πρέπει
να γίνει ο απαραίτητος έλεγχος ώστε να είναι διαχωρισμένος ο κώδικας μεταξύ των παικτών,
οπότε χρησιμοποιείται η συνθήκη “if (!photonView.IsMine) return;” (Εικόνα 70).
Εικόνα 70 Έλεγχος συγχρονισμού ThirdPersonController
Πέρα από τις συναρτήσεις ChangeTag() και PlayerDeath() που αναλύθηκαν ήδη, υπάρχει
και η συνάρτηση TouchedLava(), η οποία συγχρονίζει το οπτικό εφέ όταν ένας παίκτης ακουμπάει
έξω από την αρένα (Εικόνα 71).
Εικόνα 71 Συγχρονισμός οπτικού εφέ μέσω RPC
To script CameraScript.cs ασχολείται με την συμπεριφορά της κάμερας του παίκτη. Όταν
όμως ένας παίκτης χάνει, μπορεί να παρακολουθεί τους υπόλοιπους παίκτες. Στην γραμμή 52
(Εικόνα 72) γίνεται ο έλεγχος για το αν ο παίκτης είναι θεατής, και αν πατήσει αριστερό κλικ,
αλλάζει το άτομο που παρακολουθεί με την συνάρτηση ChangeTarget(). Στην συνάρτηση αυτή
πρώτα γίνεται η μέτρηση των παικτών που έχουν απομείνει ψάχνοντας για αντικείμενα με το tag
“Player”. Αν έχει μείνει κάποιος χωρίς να χάσει, τότε η κάμερα τον θέτει ως αντικείμενο
παρακολούθησης και εμφανίζει το όνομα του στην οθόνη. To κλικ του θεατή αυξάνει έναν
μετρητή για να αλλάζει και το άτομο που παρακολουθεί, με τον έλεγχο ότι ο μετρητής δεν
ξεπερνάει τον αριθμό των διαθέσιμων παικτών.