유니티에서 실험 데이터 수집을 위한 CSV 작성 코드

CSV를 작성하는 함수는 다음과 같이…

static void WriteCsv(List<string[]> data, string filePath, FileMode fileMode=FileMode.Append)
{
    string[][] output = new string[data.Count][];
    for (int i = 0; i < output.Length; i++) output[i] = data[i];

    int length = output.GetLength(0);
    string delimiter = ",";

    StringBuilder stringBuilder = new StringBuilder();
    for (int index = 0; index < length; index++) stringBuilder.AppendLine(string.Join(delimiter, output[index]));

    Stream fileStream = new FileStream(filePath, fileMode, FileAccess.Write);
    StreamWriter outStream = new StreamWriter(fileStream, Encoding.UTF8);
    outStream.Write(stringBuilder);
    outStream.Close();    
}

실험 데이터의 예시 형태는 다음과 같다. 필요한 경우에 trials에 한 줄 씩 데이터를 추가한다.

List<string[]> trials;

trials.Add(new string[]{
      blockCount.ToString(),
      trialCount.ToString(),
      pid.ToString(),
      tStart.ToString(), 
      tResponse.ToString(),
      });

원하는 타이밍에 다음과 같이 WriteCsv()를 호출해서 저장한다.

WriteCsv(trials, $"Data/{fileName}.csv");