質問: (float)stopwatch.Elapsed.TotalSeconds; //書き出す sw.WriteLine(stopwatch.Elapsed); sw.Flush(); sw.Close(); //Debug Debug.Log(stopwatch.Elapsed); i++; } } ``` Stopwatch以外の処理速度測定や, コルーチンを用いて遅延を入れてから書き出すなども試しましたが 実現には至りませんでした.
回答: まず、ソースコードは「```」×2で括ってください。 1回目の処理だけが書き込まれるというわけではなく、ファイル名が変更されていないため、常に同じファイルを上書きしてしまっているようです。 ``` //ファイル準備 fi = new FileInfo(Application.dataPath + "/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv"); sw = fi.AppendText(); ``` 上記処理をStart()内ではなく、Update()内にしてみたらどうでしょうか。 追記: ごめんなさい、上記間違いでした。これから、修正します。 ...ってやっているうちに、解決されたみたいですが、一応念のため。 ``` //書き出す sw.WriteLine(stopwatch.Elapsed); sw.Flush(); sw.Close(); //←これ ``` 上記ですが、一度`sw.Close();`としてしまうと、それ以降にswを使うことが出来なくなってしまいます。 そのため、`sw.Close();`をUpdate()内ではなく、OnDestroy()内で呼ぶようにすればよいです。 解決されたみたいに、再度ファイルを開きなおす方法でもよいです。