https://qiita.com/azumagoro/items/0ff1c14e1fed4f5824ae
【Unity】ポケモンのようなターン制ゲームを作ってみた 〜ターン終了時の処理〜
上記の記事を見て、自分の作りたいターン制のRPGゲームの戦闘シーン(ドラ〇エだと思ってもらえれば)に使えそうだなと思って、いざ自分で使ってみようと思ったときに、
コルーチンの特性を理解できていないなということに気づきました。
「Unity コルーチン」で検索すると、使い方とか、基本とかの記事はいっぱいあるんですけど、どうもいまいち使い方が理解できません。
調べてわかったこと
コルーチンにすると非同期処理になる。
非同期処理なのになぜか、ターン制のゲームなどを作るのには最適と書いてある。
待ち時間を yield return new WaitForSeconds(止めたい秒数);と指定できる。
(待ち時間を前の処理が終わったらとかはどうするんだろう)
コルーチンに入ったときUpdate()の次の処理はコルーチンおわるまで始まらない。
知りたいこと。
・なぜ非同期処理になってしまうのにターン制のゲームを作るのに向いているのか。(戦闘の処理だけなら順番に処理をしていくので同期処理のほうがいいじゃないか。)
・「コルーチン⓵の中にコルーチン➁いれてコルーチン➁おわったら⓵も終わり」ってするにはどうしたらいいんだろう。
(コルーチンの終了を受け取って⓵に返せれば出来ると思うけど、やり方が載っていない。(コルーチンじゃなくてほかにある?))
・Update()内にコルーチン⓵、➁、➂を処理してねって順番に書くと⓵、➁、➂の順番は同期されてる?非同期?(非同期処理になるっていうのはコルーチンの中?コルーチンの実行の命令?どっちも??)
上記3点がどうしても調べてもわからなかったので教えてください。ggrksな内容であれば検索のヒントやURLでも構いません。自力でできるところまでは検索しました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。