🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1248閲覧

コンソールに表示された数値をフォルダに保存したいのですがどうしたらいいですか?

OKAMOTU

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/09/21 04:11

前提・実現したいこと

Unityで脳波計を使った研究をしています。その際に、脳波計のデータをグラフにしたいのですが、
コンソールに表示された数値をフォルダに保存する方法がわかりません。

該当のソースコード

using UnityEngine; using System.Collections; public class DisplayData : MonoBehaviour { public Texture2D[] signalIcons; private int indexSignalIcons = 1; TGCConnectionController controller; private int poorSignal1; private int attention1; private int meditation1; private int theta; private int lowAlpha; private int highAlpha; private int lowBeta; private int highBeta; private int lowGamma; private int highGamma; private float delta; void Start() { controller = GameObject.Find("NeuroSkyTGCController").GetComponent<TGCConnectionController>(); controller.UpdatePoorSignalEvent += OnUpdatePoorSignal; controller.UpdateAttentionEvent += OnUpdateAttention; controller.UpdateMeditationEvent += OnUpdateMeditation; controller.UpdateDeltaEvent += OnUpdateDelta; } void OnUpdatePoorSignal(int value){ poorSignal1 = value; if(value < 25){ indexSignalIcons = 0; }else if(value >= 25 && value < 51){ indexSignalIcons = 4; }else if(value >= 51 && value < 78){ indexSignalIcons = 3; }else if(value >= 78 && value < 107){ indexSignalIcons = 2; }else if(value >= 107){ indexSignalIcons = 1; } } void OnUpdateAttention(int value){ attention1 = value; Debug.Log(attention1); } void OnUpdateMeditation(int value){ meditation1 = value; } void OnUpdateDelta(float value){ delta = value; } void OnGUI() { GUILayout.BeginHorizontal(); if (GUILayout.Button("Connect")) { controller.Connect(); } if (GUILayout.Button("DisConnect")) { controller.Disconnect(); indexSignalIcons = 1; } GUILayout.Space(Screen.width-250); GUILayout.Label(signalIcons[indexSignalIcons]); GUILayout.EndHorizontal(); GUILayout.Label("PoorSignal1:" + poorSignal1); GUILayout.Label("Attention1:" + attention1); GUILayout.Label("Meditation1:" + meditation1); GUILayout.Label("Delta:" + delta); } }

補足情報(FW/ツールのバージョンなど)

Unity(2017.1.1f1)
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まずprivate変数には全てに[SerializeField]アトリビュートを付けます。
次に、クラスにSerializable属性を付けます。

そうすると、そのクラスは
JsonUtility.ToJson(クラス);
で、Jsonに書き換えることが可能になりますので、
別のクラスから

C#

1System.IO.File.WriteAllText(/*データの保存先*/, JsonUtility.ToJson(DisplayData /*データのクラスのインスタンス*/));

(適宜usingディレクティブを追加してください)

とするとJson形式で保存できるはずです。

これで十分なデータが保存できないならば以下のことを教えてください。
・保存したいデータのフィールド名
・保存に使いたい形式名
・保存した後の用途(Excelで開く、Unity内で履歴機能として使う、表を印刷し回覧するなど)

投稿2019/10/14 16:48

KanazawaKureha

総合スコア368

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

OKAMOTU

2019/10/17 04:04

ありがとうございます。 無事にできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問