61
ΑΝΑΠΤΥΞΗ 3D ΣΚΟΠΕΥΤΙΚΟΥ ΠΑΙΧΝΙΔΙΟΥ ΤΡΙΤΟΥ ΠΡΟΣΩΠΟΥ ΠΟΛΛΑΠΛΩΝ
ΠΑΙΚΤΩΝ ΤΥΠΟΥ ROGUELITE
Όταν οι παίκτες είναι έτοιμοι να ξεκινήσουν το παιχνίδι, ο host μπορεί να το αρχίσει
πατώντας το κουμπί “Start Game”. To δωμάτιο κλείνει θέτοντας την μεταβλητή
PhotonNetwork.CurrentRoom.IsOpen σε false, και ο host αρχίζει να φορτώνει την νέα σκηνή με
την συνάρτηση LoadLevelAsync(). Ταυτόχρονα στέλνεται ένα event με κωδικό το
ChangeSceneCode προς τους clients, με παράμετρο τον δείκτη της σκηνής, για να εμφανιστεί η
οθόνη φόρτωσης σε όλους, αλλά με κάθε παίκτη να έχει την δικιά του μπάρα φόρτωσης. Επίσης
εκεί καλείται η συνάρτηση LoadClientLevelAsync() (Εικόνα 48) για να φορτώσει η νέα σκηνή στους
clients. H Photon μας παρέχει την μεταβλητή PhotonNetwork.LevelLoadingProgress για να
γνωρίζουμε σε πιο στάδιο βρίσκεται η φόρτωση της σκηνής, οπότε την χρησιμοποιούμε για να το
εμφανίσουμε στους παίκτες με την μορφή της μπάρας φόρτωσης.
Εικόνα 48 Εκκίνηση του παιχνιδιού
Η συνάρτηση OnEvent της Photon εκτελείται όταν εντοπίζεται ένα event από το δίκτυο.
Γίνεται ανάλυση του κωδικού που στέλνεται μέσω του δικτύου, και αν ισούται με τον κωδικό για
την αλλαγή σκηνής, τότε εκτελεί την συνάρτηση LoadClientLevelAsync() (Εικόνα 49). Για να είναι
εφικτό ο κώδικας να λαμβάνει τα events, είναι απαραίτητο να γίνει η εγγραφή της συνάρτησης
OnEvent ως ανάκληση (Εικόνα 50).