前提・実現したいこと
Unity(C#)を使用しています。
実現したい内容 …
JキーとFキーが押された場合で異なる処理をしたいと考えています。
- Jキーの場合:csvファイルで読み込んだ値とJキーが押された回数が一致した場合、"Jキー"というログを表示したいです。csvファイルは[3, 3, 5, 5, 10, 10, 15]のようになっています。具体的には、Jキーを3回押したらログが表示、Jキーを3回押したらログが表示、Jキーを5回押したらログが表示...のようにしたいです。
Jキーが押されると1ずつ増えるJCounterを用意して、csvファイルで読み込んだ値の回数分Jキーが押されるとJCounterが0になるようにして、csvファイルで読み込んだ値をfor文で繰り返すことで、Jキーを3回押したらログが表示、Jキーを3回押したらログが表示、Jキーを5回押したらログが表示...となるようにしました。」
- Fキーが押された場合:範囲を設定したランダムな値とFキーが押された回数が一致した場合、"Fキー"というログを表示したいです。
Fキーが押されると1ずつ増えるFCounterを用意して、範囲を設定したランダムな値の回数分Fキーが押されるとFCounterが0になるようにして、Fキーをランダム回数押したらログが表示するようにしました。」
実行したコードとその結果
実行したコード
このようなコードを実行しました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using System.IO; 5 6public class Botton_Script : MonoBehaviour 7{ 8 // Jキーが押された場合 9 private List<string> CsvRandom = new List<string>(); 10 int i; 11 int JCounter = 0; 12 13 // Fキーが押された場合 14 int min = 2; 15 int max = 5; 16 int Ramdom; 17 int FCounter = 0; 18 19 20 void Start() 21 { 22 TextAsset csv = Resources.Load("RandomTimes") as TextAsset; 23 StringReader reader = new StringReader(csv.text); 24 while (reader.Peek() > -1) 25 { 26 string line = reader.ReadLine(); 27 string[] values = line.Split(','); 28 29 for (i = 0; i < values.Length; i++) 30 { 31 CsvRandom.Add(values[i]); 32 } 33 } 34 } 35 36 37 private void Update() 38 { 39 // Jキーが押された場合 40 if (Input.GetKeyDown(KeyCode.J)) 41 { 42 JCounter += 1; 43 Debug.Log(JCounter); 44 45 for (i = 0; i < CsvRandom.Count; i++) 46 { 47 if (Counter == int.Parse(CsvRandom[i])) 48 { 49 Debug.Log("Jキー"); 50 JCounter = 0; 51 } 52 53 } 54 } 55 56 // Fキーが押された場合 57 Random = Random.Range(min, max); 58 if (Input.GetKeyDown(KeyCode.F)) 59 { 60 FCounter += 1; 61 Debug.Log(FCounter); 62 63 if (Counter == Random) 64 { 65 Debug.Log("Fキー"); 66 FCounter = 0; 67 } 68 69 } 70 } 71}
実行した結果
上記のコードを実行した結果、
以下のようになりました。
「Jキーの場合:for文を使って[3, 3, 5, 5, 10, 10, 15]が順番に来るようにしたのですが、最初の[3]だけしか抽出できていません。」
「Fキーの場合:何回かはFキーをランダム回数押したらログが表示され、FCounterが0になるのですが、途中からFCounterが0になりません。」
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/16 06:08