matheostsik Δημοσ. 3 Ιουνίου 2018 Μέλος Δημοσ. 3 Ιουνίου 2018 Στις 1/6/2018 στις 2:05 ΠΜ, Alithinos είπε Κοίτα εγώ τα health pickups που φτιάχνω τα κάνω να δουλεύουν ως εξής: 1) Καταρχάς βάζω σε gameObjects διάφορα tags. Στο δικό μου παιχνίδι ξέρω πχ. Ότι health pickups παίρνουν οι διάφοροι χαρακτήρες. Έχω φτιάξει λοιπόν το tag "Character" και το έχω βάλει στους χαρακτήρες. Εσύ ίσως να θες να φτιάξεις ένα tag "Tank" ή κάτι παρόμοιο. 2) Στην OnTriggerEnter, καταρχάς τσεκάρω αν το αντικείμενο το οποίο ακουμπάει το pickup είναι από αυτά που μπορούν να χρησιμοποιήσουν το health pickup. 3) Αν μπορούν, χρησιμοποιώ τη GetComponent() για να πάρω το component εκείνο που έχει τη ζωή του χαρακτήρα. 4) Ανεβάζω τη ζωή στο component που πήρα. Για παράδειγμα φαντάσου κάτι τέτοιο: OnTriggerEnter(Collider other) { if(other.gameObject.tag == "Character") // Έλεγχος αν ανήκει στη κατηγορία που παίρνουν το pickup. { CharacterHealth charHealth = other.gameObject.GetComponent<CharacterHealth>(); // Παίρνουμε το component με τη μεταβλητή ζωής. if(charHealth.currentHealth == charHealth.maxHealth) //Αν έχει full ζωή δε παίρνει το pickup. return; if(charHealth.currentHealth + pickupHP >= charHealth.maxHealth) // Αν η ζωή που έχει τώρα συν τη ζωή του pickup δίνουν μεγαλύτερο ή ίσο αριθμό από τη μέγιστη ζωή, γεμίζουμε τέρμα τη ζωή. charHealth.currentHealth = charHealth.maxHealth; else //Ενώ αν τέλος δεν ισχύει κάτι απ' τα παραπάνω, απλά προσθέτουμε τους πόντους του pickup στους ήδη υπάρχοντες πόντους ζωής. charHealth.currentHealth += pickupHP; } } Εγω εκανα κατι αλλο που βολευε πιο πολυ οπως ειχα ηδη αρχισει , εβαλα την συναρτηση αυτη στην κλαση του τανκ αντι να χρησιμοποιησω GetCompoment κλπ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα