|
I have not found any answers on here to help me out so I just thought I would ask. Hopefully I am not repeating a question with an answer already, I just haven't found it. I have a door that needs to be opened after you shoot 3 targets. I have an inventory that keeps track of doors hit, and when you shoot the target it is destroyed and adds 1 to the inventory. I am trying to make it so once the inventory is at 3, the door will open. I already have a working door script so there is no problem on that, so I am just using print("Door is opening!"); to let me know everything is working properly. //This script is used to open a door when the three targets are hit
//Im using print right now just to know if this is working correctly. Right now if I shoot all the targets, it doesn't print. // This script keeps track of stats, inventory, etc...
//This script destroys the game object when trigger object is hit
As of right now, the targets get destroyed and the print comes up and says that the target was hit. So it should be adding to the inventory, and the door should open once it reaches 3. . . but it is not. Please help. Thank you in advance!
(comments are locked)
|
|
Your problem lies with:
Code is case-sensitive ... it needs to be:
To be honest, I would recommend considering a change to how you're checking if the number of targets have been hit. Checking every frame until the 'targetsHit == 3' means unnecessary inefficiencies. It will also print the message every frame, and continue to check targetsHit even after it counts past 3. I would personally suggest checking it just after you increment the count. Oh man I didnt even think of that. I changed it, yet it still does not print that the door is opening. Am I doing this the wrong way?
Oct 27 '10 at 03:54 AM
Corey Pullman
If you have it in function Update() and it's not printing, then either targetsHit isn't equal to 3, the script isn't enabled, or the script isn't attached to a GameObject.
Oct 27 '10 at 04:06 AM
Marowi
I just tried that, and it still doesn't work. BUT in a way it does... cause when I shoot and destroy all the targets, it alerts me that the target is hit at the bottom, and thats all I see. "Target Hit!" BUT when i go into the console alert thing, It says three "Target Hit!" then it says "Door Opening!" then it is followed by three more target hit's...
Oct 27 '10 at 04:24 AM
Corey Pullman
Well I got it working so that once you shoot all three targets it prints door opening. But there is still a problem, I found out that every time I destroy 1 target, it prints target hit twice, so it is counting each target as 2... so I increased the targetsHit == 6 and it works. No idea why it is counting each as 2 though.
Oct 27 '10 at 04:42 AM
Corey Pullman
I suspect that the same may have been true when you tried it in Update(). Is "Target Hit!" being printed anywhere else in your code? If not, then perhaps you could add "Debug.Log(other.gameObject.name)" to OnTriggerEnter, to see which objects are entering the trigger.
Oct 27 '10 at 04:43 AM
Marowi
(comments are locked)
|

I added code tags so it's easier to read.