RPGゲームの戦闘シーンにおいて、ターン制の攻撃を実現したいです。
はじめまして。
先月からUnityを勉強し始め、一通り終わったためにRPGの戦闘シーンを作ろうと試みているところです。
以下、質問内容になります。
<ゲームの仕様(質問における前提条件)>
・味方キャラクターは3人(A、B、C)、敵キャラクターは1人(D)。
・攻撃の順番はA→B→C→D
【質問内容】
今回、if文、switch文、for文を用いて以下のプログラムを作りました。
void Update(){
for(n=1;n<5;n++){
switch(n){
case 1:
if(Input.GetKeyDown(KeyCode.P)){
Debug.Log("A attack");
break;
}
case 2:
if(Input.GetKeyDown(KeyCode.P)){
Debug.Log("B attack");
break;
}
case 3:
if(Input.GetKeyDown(KeyCode.P)){
Debug.Log("C attack");
break;
}
case 4:
if(Input.GetKeyDown(KeyCode.P)){
Debug.Log("D attack");
break;
}
}
}
}
理想としては、まずAの戦闘ターンでPボタンを押すとAが攻撃。
その後Bの戦闘ターンでPボタンを押すとBが攻撃。CとDが後に続く・・・という流れです。
しかしながら、実際にプログラムを実行すると、Pボタンを押すと、ABCD全てのcaseが実行されてしまい、Console画面には"各キャラ attack"が表示されてしまいました。
これを各キャラクターの処理を一つずつ実行したいのですが、どうかご教授いただけないでしょうか?
【対処法?】
この対処法をネット上で調べた結果、Console.ReadKey();やConsoleKeyInfoを用いるとのことだったのですが、試したところエラーが出てしまい行き詰まってしまいました。
(エラー内容は"All compiler errors have to be fixed before you can enter playmode!)
以上、宜しくお願い致します。