unityのDebug.LogやGetComponentの使い方。
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 117
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Enflux.SDK.Core;
using UnityEngine.UI;
using System;
using System.Linq;
using Enflux.Common.DataTypes;
using Enflux.SDK.Core.Devices;
using Enflux.SDK.DataTypes;
using Enflux.SDK.Extensions;
using Enflux.SDK.Utils;
using Enflux.Shim.Utils;
using System.IO;
public class example0 : MonoBehaviour
{
// Assign these in the editor.
public EnfluxManager EnfluxManager;
public Humanoid Humanoid;
// Retrieve limb orientations as Unity local space quaternions.
private void GetLocalSpaceOrientations()
{
var chest = Humanoid.LocalOrientations.Chest.Orientation;
var leftUpperArm = Humanoid.LocalOrientations.LeftUpperArm.Orientation;
var leftLowerArm = Humanoid.LocalOrientations.LeftLowerArm.Orientation;
var rightUpperArm = Humanoid.LocalOrientations.RightUpperArm.Orientation;
var rightLowerArm = Humanoid.LocalOrientations.RightLowerArm.Orientation;
var pelvis = Humanoid.LocalOrientations.Pelvis.Orientation;
var leftUpperLeg = Humanoid.LocalOrientations.LeftUpperLeg.Orientation;
var leftLowerLeg = Humanoid.LocalOrientations.LeftLowerLeg.Orientation;
var rightUpperLeg = Humanoid.LocalOrientations.RightUpperLeg.Orientation;
var rightLowerLeg = Humanoid.LocalOrientations.RightLowerLeg.Orientation;
}
// Retrieve limb orientations as real world NED (North-East-Down) space quaternions.
private void GetNedSpaceOrientations()
{
var chest = EnfluxManager.NedOrientations.Chest.Orientation;
var leftUpperArm = EnfluxManager.NedOrientations.LeftUpperArm.Orientation;
var leftLowerArm = EnfluxManager.NedOrientations.LeftLowerArm.Orientation;
var rightUpperArm = EnfluxManager.NedOrientations.RightUpperArm.Orientation;
var rightLowerArm = EnfluxManager.NedOrientations.RightLowerArm.Orientation;
var pelvis = EnfluxManager.NedOrientations.Pelvis.Orientation;
var leftUpperLeg = EnfluxManager.NedOrientations.LeftUpperLeg.Orientation;
var leftLowerLeg = EnfluxManager.NedOrientations.LeftLowerLeg.Orientation;
var rightUpperLeg = EnfluxManager.NedOrientations.RightUpperLeg.Orientation;
var rightLowerLeg = EnfluxManager.NedOrientations.RightLowerLeg.Orientation;
Debug.Log("胸 " + chest);
Debug.Log("<color=blue>" + "左肘 " + leftUpperArm + "</color>");
Debug.Log("<color=blue>" + "左手首 " + leftLowerArm + "</color>");
Debug.Log("<color=red>" + "右肘 " + rightUpperArm + "</color>");
Debug.Log("<color=red>" + "右手首 " + rightLowerArm + "</color>");
}
void Start()
{
}
private float timeleft;
int log;
void Update()
{
timeleft -= Time.deltaTime;
if (timeleft <= 0.0)
{
timeleft = 1.0f;
log++;
Debug.Log("Log : " + log);
// textSave(GetNedSpaceOrientations);
GetNedSpaceOrientations();
// Debug.Log(GetNedSpaceOrientations());
// this.GetComponent<Text>().text = GetNedSpaceOrientations();
}
}
/* public void logSave(int num, string txt)
{
StreamWriter sw;
FileInfo fi;
fi = new FileInfo(Application.dataPath + "/FileName.csv");
sw = fi.AppendText();
sw.WriteLine("test output");
sw.Flush();
sw.Close();
}
*/
public void textSave(int log)
{
StreamWriter sw = new StreamWriter("../aaaaa.txt", true); //true=追記 false=上書き
sw.WriteLine(log);
sw.Flush();
sw.Close();
}
}
unityを使って現在開発中なのですが、GetNedSpaceOrientations()の値を
console上と画面にだしたいのですがエラーになり足止め状態になっています。
また、consoleで出力した内容をテキスト上に書き出したいのですがそれもわからなくて困っています。
Update内の//の部分が主なわからない内容です。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
GetNedSpaceOrientations()
はvoid型なので、返り値はありません。
以下のようにすれば、文字列を取得することが出来るようになります。
// void → string に変更
private string GetNedSpaceOrientations()
{
var chest = EnfluxManager.NedOrientations.Chest.Orientation;
var leftUpperArm = EnfluxManager.NedOrientations.LeftUpperArm.Orientation;
var leftLowerArm = EnfluxManager.NedOrientations.LeftLowerArm.Orientation;
var rightUpperArm = EnfluxManager.NedOrientations.RightUpperArm.Orientation;
var rightLowerArm = EnfluxManager.NedOrientations.RightLowerArm.Orientation;
var pelvis = EnfluxManager.NedOrientations.Pelvis.Orientation;
var leftUpperLeg = EnfluxManager.NedOrientations.LeftUpperLeg.Orientation;
var leftLowerLeg = EnfluxManager.NedOrientations.LeftLowerLeg.Orientation;
var rightUpperLeg = EnfluxManager.NedOrientations.RightUpperLeg.Orientation;
var rightLowerLeg = EnfluxManager.NedOrientations.RightLowerLeg.Orientation;
// 返り値の文字列を指定
return "胸 " + chest + "\n左肘 " + leftUpperArm + "\n左手首 " + leftLowerArm + "\n右肘 " + rightUpperArm + "\n右手首 " + rightLowerArm;
}
ソースコードは「```」×2で囲うと見やすくなります。
また、エラーが出たのであれば、基本的にはその内容をコピペしてください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 91.06%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/12/13 10:11
あともう一つ今console上に数値が出るようになったのですがその数値をpython上に渡してグラフ化したいと考えています。よろしければ教えていただけると助かります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
private float timeleft;
void Update()
{
timeleft -= Time.deltaTime;
if (timeleft <= 0.0)
{
timeleft = 1.0f;
Debug.Log(GetNedSpaceOrientations());
this.GetComponent<Text>().text = GetNedSpaceOrientations();
}
}
/* public void logSave(int num, string txt)
{
StreamWriter sw;
FileInfo fi;
fi = new FileInfo(Application.dataPath + "/FileName.csv");
sw = fi.AppendText();
sw.WriteLine("test output");
sw.Flush();
sw.Close();
}
*/
public void textSave(float GetNedSpaceOrientations)
{
StreamWriter sw = new StreamWriter("../aaaaa.txt", true); //true=追記 false=上書き
sw.WriteLine(GetNedSpaceOrientations);
sw.Flush();
sw.Close();
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーー
現在テキストに書き出したいのですが、それもできていなくて。
エラーは出ていないのですが、うまくいっていなくて。
直接pythonに書き込むことができるならテキストに書き出す必要はないのですが。。。
2017/12/13 10:57
Python側では、その保存したファイルから値を取得し、グラフ化させる、というのはどうでしょうか?
ちなみに、一応Unity上からPythonのスクリプトを実行する方法はあるそうですが、私は試したことがないので、よく分かりません。
2017/12/13 11:06