時代はデータ😤
実験やログ解析などで、プレイヤーの行動や動作のログを取りたい時がある。
時系列データを吐かせるスクリプトを作ってみた。
以下のスクリプトをプロジェクトに追加
(追記 using System.IO
を忘れていました)
DataLogger.cs
using System.IO; //←add this on the top of your code!
public class DataLogger : MonoBehaviour {
private StreamWriter sw;
private FileInfo fi;
private DateTime date;
// Use this for initialization
void Start () {
date = DateTime.Now;
}
// Update is called once per frame
void Update () {
string str;
string format = "yyyy-MM-dd-HH-mm-ss";
string filename = "/data/" + date.ToString (format) + ".csv";
fi = new FileInfo(Application.dataPath + filename);
str = this.gameObject + "," + (transform.position.x) + "," +(transform.position.y) + "," + (transform.position.z)+","+ transform.rotation.x +","+ transform.rotation.y +","+ transform.rotation.z +","+ transform.rotation.w ;
sw = fi.AppendText();
sw.WriteLine(str);
sw.Flush();
sw.Close();
}
}
スクリプトをデータのログを取りたいGameObject
にAdd Componentすることでファイルが吐き出される。transform
のパラメータを出力するようにしてある。
単一のGameObjectであれば問題ないが、複数のGameObjectごとにファイルを吐かせたい場合は、string filename
を書き換える必要がある。this.gameObject
を挟めばGameObject
の名前がついた.csvファイルが出力される。
特に最近はVRコンテンツのログによる人間行動の観察が重要そう。データ可視化とかヒートマップ的なものにも使えそう