文字列が長すぎてDebug.Logで出力できない!?
UnityでデバッグするのにDebug.Logを使う機会は本当に多いです。変数の内容やプログラムの挙動を確認をするのに大変便利です。そんなDebug.Logですが、あまりにも文字列が長いとエディタ上に全部出力されません。
どんなときにそんな長い文字列になるのかというと、プレイデータなどをシリアライズ化したときにとても長い文字列になります。そんな長い文字列の内容を確認するのに役立つのがテキストファイルに出力するという方法です。
※名前空間 using System.IO; を宣言しておきましょう
string txt = "長い文字列"; StreamWriter sw = new StreamWriter("../TextData.txt",false);// TextData.txtというファイルを新規で用意 sw.WriteLine(txt);// ファイルに書き出したあと改行 sw.Flush();// StreamWriterのバッファに書き出し残しがないか確認 sw.Close();// ファイルを閉じる
StreamWriterの第二引数をTrueにすると上書き保存されます。
StreamWriterは書き出し処理を早くするた、一度バッファに取り込んでから出力するようですが、バッファにあるデータの書き出し残しがないかをFlushで確認します。
上記のコードを実行するとUnityのプロジェクトフォルダの一つ前の階層にファイルが出力されると思います。Unityの階層を調べるにはApplication.dataPathを使います。