|
Okay well, I have been trying different things for a while now because nothing seems to work.(C# of course) I have been using WaitForSeconds but it just doesn't work. What I am trying to do is on return disable a script, but this script also uses return to do play an animation, but I want it so you can only press it once to only be able to play the animation once. So since they use the same keycode to toggle it, it does successfully disable the code, but doesn't play the animation(of course). So I thought that I could just make it so it has a small delay before disabling the animation. Is there an easier way to make the script only work once? but then being able to toggle back on after a certain amount of time? Or would it be best to use this "delay" method? Also Here is the code I have for delay that doesn't work. Regards, ~Connor
(comments are locked)
|
|
Good use for a boolean The bool makes this section run only once. I figured it out, What I did was just moved everything into the IEnumerator part except for the start coroutine and it worked fine. Wow am I a noob facepalm
Aug 05 '12 at 05:11 AM
CSpence97
(comments are locked)
|

You just use "Invoke".
It is the most basic and most commonly-used command in all of video game programming.
Unless you're an expert or a systems programmer never touch coroutines or yield, etc etc for any reason.
It's just an ordinary Invoke command. Much of video game code is just 100s and 100s of lines of Invoke commands (or the equivalent commands in different systems), to make things start or end at different times.
It's a great pity that Unity even mention yield, etc in the docs as it is hugely confusing to new users.