|
Hi Unity Community. I would like to make a list of objects in a scene. Lets say I design 3 space levels and I have a perfab called "commet". In level 1, I add 10 commets, in lvl two, 3 commets. And in level three, 12 comments. Now I tell the player to destroy all comments in the scene and I want to display it like "1/10". I know there is a way I can create an Array tell the array to add all commets in the scene to it and and count them. I am just having a hard time finding a code snip of something similar to point me in the right direction. I am using Javascript in unity. Thank you for your time.
(comments are locked)
|
|
You could just have a static variable that increments/decrements every time you destroy a comet. It seems as though you know how many comets there are in total at any given time. When you spawn more, you'd just add that same number to the current total.
When you spawn comets:
When you destroy a comet:
Your GUI script could then just display cometsDestroyed/cometsTotal. However, since you asked for a function that creates an array and counts them, this function will count how many GameObjects with the 'Comet' tag are still existing. The GameObject.Find searches aren't cheap, so you probably wouldn't want to do this every frame.
Honestly, I would suggest the first approach, unless there's a reason you need the function (that you didn't mention in your question). Hope this helps. Ah thats great, thank you for your answer. I am not actually working with comets and such, I was just using it as an example so that I can ask my question without confusion. I can just call that CountComet function from inside the Awake function so it wont do it every frame. I am looking to create around 50 levels or more in which you have to collect a particular item that i will place all over, but not all levels will have the same amount of items, and I have on master game controller code that controlls all the levels the same way. so I did not want to create a . " if application.loaded =
Sep 06 '10 at 04:03 PM
Anxowtf
to level 1 then item count = 10 and so on. I wanted a code that is relative to the level designed. Again, Thank you for your answer, not tested yet but it looks like that will get me on the right track.
Sep 06 '10 at 04:05 PM
Anxowtf
worked perfectly, Here it is implemented. function NuttCounter() : int { var Nutts : GameObject[] = GameObject.FindGameObjectsWithTag("nutt"); print(Nutts.length); TotalNutts = Nutts.length; }
Sep 06 '10 at 04:32 PM
Anxowtf
then in the update function I have " if (NuttsCollected >= TotalNutts){ YouWin();} so this will eliminate I wold say 40% of the work when I create the levels for this game, allowing me to create more levels without getting bored!
Sep 06 '10 at 04:34 PM
Anxowtf
(comments are locked)
|
