前提・実現したいこと
Unity(C#)を使用しています。
- 実現したい内容 …
「 Unityのデータをcsvファイルに渡したいです。具体的には、スペースキーが押されたら、[space]と[time(スペースキーが押された時間)]の情報を、Zキーが押されたら、[z]と[time(Zキーが押された時間)]の情報をcsvファイルに渡したいです。2つスクリプトがあるのすが、zキーの方のスクリプトしか反映されません。」
実行したコードとその結果
実行したコード
このようなコードを実行しました。
1つ目のscript
C#
1using System.IO; 2using System.Text; 3 4public class NewBehaviourScript : MonoBehaviour 5{ 6 private float time; 7 private StreamWriter sw; 8 9 void Start() 10 { 11 sw = new StreamWriter(@"C:~~saveData.csv", true, Encoding.GetEncoding("Shift_JIS")); 12 // ヘッダー出力 13 string[] s1 = { "space", "z", "time"}; 14 string s2 = string.Join(",", s1); 15 sw.WriteLine(s2); 16 } 17 18 void Update() 19 { 20 time += Time.deltaTime; 21 22 if (Input.GetKeyDown(KeyCode.Space)) 23 { 24 string[] s7 = {"space", " ", time.ToString()}; 25 string s8 = string.Join(",", s7); 26 sw.WriteLine(s8); 27 } 28 29 if (Input.GetKeyDown(KeyCode.Q)) 30 { 31 sw.Close(); 32 } 33 34 } 35} 36
2つ目のscript
C#
1using System.IO; 2using System.Text; 3 4public class z_script : MonoBehaviour 5{ 6 private float time; 7 private StreamWriter sw; 8 9 void Start() 10 { 11 sw = new StreamWriter(@"C:~~saveData.csv", true, Encoding.GetEncoding("Shift_JIS")); 12 // ヘッダー出力 13 string[] s1 = { "space", "z", "time" }; 14 string s2 = string.Join(",", s1); 15 sw.WriteLine(s2); 16 } 17 18 void Update() 19 { 20 time += Time.deltaTime; 21 22 if (Input.GetKeyDown(KeyCode.Z)) 23 { 24 string[] s7 = { " ", "z", time.ToString() }; 25 string s8 = string.Join(",", s7); 26 sw.WriteLine(s8); 27 } 28 29 if (Input.GetKeyDown(KeyCode.Q)) 30 { 31 sw.Close(); 32 } 33 34 } 35} 36
実行した結果
上記のコードを実行した結果、
以下のようになりました。
csv
1space z time 2 z 押された時間 3 z 押された時間 4
本来得たい結果
望んでいた実行結果は以下の通りです。
csv
1Out[]: 2space z time 3 z 押された時間 4space 押された時間 5 z 押された時間
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。