- Home /
Help with waiting for input? I'm too used to how Console.ReadLine() works.
Some background here, I'm no expert coder, and I'm no expert with C#, which is what I'm working in.
Anyway, so this is kind of an awkward question, but does unity have a way to wait for input akin to something like Console.ReadLine() in C (or similar functions in other languages)? That is to say, something I can call from anywhere, and that will halt the program until the user submits whatever input after which the code will resume where it left off. Now, it is my understanding that in unity, "halting the program" would actually mean something like freezing on one frame, which would naturally make user input impossible. So when I say halt the program, I suppose what I really mean is stop the main logic of the game. And maybe now would be a good time to mention that I'm working on a turn-based like game where the main logic would in fact be a series sequence of distinct, sequential events, unlike say a realtime game. Anyway from the hours I've spent trying to wrap my head around this it seems like the answer I see most often is Coroutines, however it is my understanding that this only works if I wrap that "main logic of the game" in a Coroutine, which would be perfectly fine with me except it is my understanding that I still wouldn't be able to call some sort of wait/read thing from a deeply nested method. It seems the only way around this is to make sure that instead of calling methods withing the main logic normally, I instead make all of those methods Coroutines themselves, which would then let me put a wait anywhere, And I can't really figure out a way of doing that that doesn't feel like I'm messing up all of my code.
I apologize for this rambling mess of a question, I feel I haven't been very clear but I'm having a hard time articulating my problem here. I guess the core of what I want to know is if I'm really stuck with coroutines, and if so if they really are the mess I'm understanding them to be or if I'm just not understanding them correctly.