Caiden Δημοσ. 27 Μαρτίου 2014 Δημοσ. 27 Μαρτίου 2014 (επεξεργασμένο) Καλημερα σε ολους, φτιαχνω το πρωτο μου 3D παιχνιδι σε Unity3D και χρειαζομαι την βοηθεια σας να το ολοκληρωσω. Καταρχην δυο ερωτησεις και αν προκυψουν αλλες βλεπουμε. 1) Εχω ενα object με ονομα Coin το οποιο περιεχει καποιο animation, ενα value και στο ενα Destroy αν περασει η μπαλα-player στο τελος. Οταν εχω βαλει στο Scene μονο ενα μια χαρα, αλλα αν βαλω περισσοτερα με copy-paste(εδω μαλλον κανω το λαθος) αν κανω collect το πρωτο ταυτοχρονα εξαφανιζονται και ολα τα αλλα λες και ειναι μια οντοτητα και οχι πολλα διαφορετικα. Πως μπορω να το φτιαξω αυτο? 2) Εχω ενα object παλι με το ονομα Ground_Finish και Tag "Finish" που οταν η μπαλα φτασει σε αυτο να φορτωνεται το επομενο Level κτλ. Πως μπορω να τσεκαρω αν η μπαλα εφτασε? Δοκιμασα μερικους τροπους αλλα δεν μου δουλευουν. Επισης το script που θα υπαρχει αυτη η εντολη θα ειναι στο Ground_Finish ή στον Player? Κωδικας πριν κανω τις αλλαγες (Τον ανεβασα στο pastebin γιατι εδω μου τα εβγαζε κινεζικα) GameMaster //Music manager and score table Camera //Camera movement CoinCollect //Animation when collect coin and destroy object BallHealth //Check if need to restart current level BallControl //Ball control keys Επεξ/σία 27 Μαρτίου 2014 από Caiden
SouLSLayeR Δημοσ. 27 Μαρτίου 2014 Δημοσ. 27 Μαρτίου 2014 Την επόμενη φορά πήγαινε σε χαρτορίχτρα, πιο πολύ θα σε βοήθαγε μάλλον με τις πληροφορίες που δίνεις, επειδή ναι, προφανώς, αν δεν δούμε τα σκριπτς περιμένεις να τα μαντέψουμε? Τέσπα, απ' όσο κατάφερα να αποκωδικοποιήσω: 1) Αν θες πολλά ίδια αντικείμενα θα έπρεπε να κάνεις αυτό το αντικείμενο prefab και μετά Instantiate. Τα τουτόριαλ που έχουν στη σελίδα τους έχουν πολλά παραδείγματα. 2)Λογικά έχεις 2 αντικείμενα με rigidbodies και colliders έτσι, την μπάλα και το "τέρμα"? Αν ναι, τότε το "τέρμα" σου, στον collider του, θα έπρεπε να έχει τσεκαρισμένο το "Is trigger", και στο script του να φτιάξεις ένα OnTriggerEnter function, και μέσα του να υπάρχει ένα Application.LoadLevel ("derp"). Εγώ τουλάχιστον έτσι θα το έκανα. Και τώρα λίγο οφτόπικ. Χωρίς να θέλω να φανώ κακός ή εξυπνάκιας, πρέπει να μάθεις να ψάχνεις μόνος. Οι ερωτήσεις σου, παρόλο που μου φαίνονται λογικές για αρχάριο επειδή και εγώ δεν γεννήθηκα ξέροντας τα, είναι απαντημένες ήδη άπειρες φορές. τιπ: Στο monodevelop αν δεν ξέρεις τι κάνει κάτι, απλά κάνε κλικ σε αυτό, πχ το OnTriggerEnter (ώστε ο κέρσορας να αναβοσβήνει ανάμεσα στα γράμματά του) και πάτα ctrl + '. Αυτό θα ψάξει το documentation του Unity και θα σε πετάξει στη σελίδα του (όπως αυτά που λίνκαρα πιο πάνω).
Caiden Δημοσ. 27 Μαρτίου 2014 Μέλος Δημοσ. 27 Μαρτίου 2014 (επεξεργασμένο) 1) Αν θες πολλά ίδια αντικείμενα θα έπρεπε να κάνεις αυτό το αντικείμενο prefab και μετά Instantiate. Τα τουτόριαλ που έχουν στη σελίδα τους έχουν πολλά παραδείγματα. Το ειχα κανει prefab αλλα οχι μετα Instantiate. Τωρα πιστευω θα δουλευει. 2)Λογικά έχεις 2 αντικείμενα με rigidbodies και colliders έτσι, την μπάλα και το "τέρμα"? Αν ναι, τότε το "τέρμα" σου, στον collider του, θα έπρεπε να έχει τσεκαρισμένο το "Is trigger", και στο script του να φτιάξεις ένα OnTriggerEnter function, και μέσα του να υπάρχει ένα Application.LoadLevel ("derp"). Εγώ τουλάχιστον έτσι θα το έκανα. Το ειχα κανει οπως το λες με την function OnTriggerEnter αλλα δεν ειχα τσεκαρει το Is trigger τιπ: Στο monodevelop αν δεν ξέρεις τι κάνει κάτι, απλά κάνε κλικ σε αυτό, πχ το OnTriggerEnter (ώστε ο κέρσορας να αναβοσβήνει ανάμεσα στα γράμματά του) και πάτα ctrl + '. Αυτό θα ψάξει το documentation του Unity και θα σε πετάξει στη σελίδα του (όπως αυτά που λίνκαρα πιο πάνω). Πολυ χρησιμο αυτο δεν τον ηξερα σε ευχαριστω Την επόμενη φορά πήγαινε σε χαρτορίχτρα, πιο πολύ θα σε βοήθαγε μάλλον με τις πληροφορίες που δίνεις, επειδή ναι, προφανώς, αν δεν δούμε τα σκριπτς περιμένεις να τα μαντέψουμε? Εχεις δικιο απλα το ποσταρα χωρις κωδικα με την σκεψη οτι υπαρχει ενας γενικος τροπος που δουλευει ανεξαρτητα την καθε υλοποιηση. Θα κανω edit το πρωτο ποστ με τον κωδικα ετσι ωστε οποιος θελει να τον δει και να μου πει αν υπαρχει καποιος ευκολοτερος τροπος να κανω αυτο που θελω ή αν πρεπει να διορθωσω κατι. Επεξ/σία 27 Μαρτίου 2014 από Caiden
SouLSLayeR Δημοσ. 27 Μαρτίου 2014 Δημοσ. 27 Μαρτίου 2014 Αν δουλέψουν σφύρα μας και 'δω, και εγώ πριν ~2 βδομάδες ξεκίνησα να ασχολούμαι πιο πολύ για να εξασκήσω την C# και τελικά κόλλησα. Μη σου πω ανέβασε όλο το πρότζεκτ αν θες, για να σου δώσουμε και φίντμπακ. Καλή τύχη!
sonyxp Δημοσ. 27 Μαρτίου 2014 Δημοσ. 27 Μαρτίου 2014 Δες αυτά που σου είπε ο/η SoulSlayer @ Στην μπάλα σου void OnTriggerEnter(Collider col) { if (col.transform.tag.Equals("Finish")) { // Whatever... } } 1. Όσο για το 1ο (δεν είδα τα scripts σου), πρόσεχε λίγο πως δηλώνεις μεταβλητές, αν δηλώσεις ως static (η εύκολη λύση) θα έχεις τέτοια θέματα αφού όλα τα αντικείμενα που κουβαλάνε το Script βλέπουν στην ίδια μεταβλητή. 2. Θα πρέπει να τσεκάρεις την επιλογή "Is Trigger" στο αντικείμενο τερματισμού αλλιώς η μπάλα δεν θα μπει ποτέ μέσα, οπότε ούτε ο κώδικας θα εκτελεστεί.
Caiden Δημοσ. 27 Μαρτίου 2014 Μέλος Δημοσ. 27 Μαρτίου 2014 Λοιπον τελικα το εφτιαξα οσο αφορα τον τερματισμο. Εφτιαξα ενα scriptακι για το finish τωρα μου μενουν τα νομισματα function OnTriggerEnter(myCollision : Collision){ if (myCollision.gameObject.tag == "Player"){ Application.LoadLevel(levelToLoad); } } 1. Όσο για το 1ο (δεν είδα τα scripts σου), πρόσεχε λίγο πως δηλώνεις μεταβλητές, αν δηλώσεις ως static (η εύκολη λύση) θα έχεις τέτοια θέματα αφού όλα τα αντικείμενα που κουβαλάνε το Script βλέπουν στην ίδια μεταβλητή. 2. Θα πρέπει να τσεκάρεις την επιλογή "Is Trigger" στο αντικείμενο τερματισμού αλλιώς η μπάλα δεν θα μπει ποτέ μέσα, οπότε ούτε ο κώδικας θα εκτελεστεί. Ο κωδικας μου θελει αρκετες βελτιωσεις ακομα, απλα τωρα τον εχω λιγο χυμα, με αρκετες μεταβλητες να παιρνουν τιμη απο εισοδο για να μπορω να κανω γρηγορες δοκιμες Στο object του τερματισμου δεν εχω βαλει rigid body απλα εναν box collider. Το θεμα ειναι οτι οποτε τικαρα το Is trigger η μπαλα περναγε απο μεσα και επεφτε στο κενο. Αν δουλέψουν σφύρα μας και 'δω, και εγώ πριν ~2 βδομάδες ξεκίνησα να ασχολούμαι πιο πολύ για να εξασκήσω την C# και τελικά κόλλησα. Μη σου πω ανέβασε όλο το πρότζεκτ αν θες, για να σου δώσουμε και φίντμπακ. Καλή τύχη! Και εγω τα ιδια μια εβδομαδα ασχολουμε με ενα απλο project, στοχευοντας αργοτερα σε κατι μεγαλυτερο. Αν τελειωσει το project φυσικα αν θελετε να το ανεβασω
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα