【发布时间】:2018-07-18 19:32:17
【问题描述】:
我目前正在开展一个学校项目,我将在其中使用动作捕捉和统一。它是为老年人设计的,以改善他们的认知和运动功能。我希望 unity 能够将他们的动作记录到 CSV 文件中,以查看他们的表现如何。我想在 Excel 中记录 x、y 和 z 坐标与时间的关系。
我正在使用感知神经元进行动作捕捉,它共有 32 个传感器。统一的 3D 模型有 32 个不同的可移动部分/肢体,包括手指。我在这里添加了一张图片:
现在在这段代码中,我似乎无法获得肢体的坐标(我现在只是想获得单个肢体的坐标)。我努力尝试提取游戏对象的坐标。但是我尝试将 Vector3 拆分为 x、y、z 坐标以获得单独的坐标,并且还因为我希望这些值也是浮动的,但它似乎不起作用,谁能帮我解决这个问题?
这是我的代码:
using UnityEngine;
using System.Collections.Generic;
using System;
using System.IO;
public class Test : MonoBehaviour
{
float timer = 100.0f;
public TestSO so ;
StreamWriter motionData;
public void Start()
{
string fullFilename = @"C:\Users\Administrator\Desktop\CsvPlz.csv";
motionData = new StreamWriter(fullFilename, true);
InvokeRepeating("wolf", 0.0f, 0.5f);
}
void wolf()
{
timer += Time.deltaTime;
string delimiter = ", ";
var position : Vector3;
var x: float = position[0];
var y : float = position[1];
var z : float = position[2];
if (timer > 1.0f)
{
timer -= 1.0f;
string dataText = ("{1}",x) + delimiter + ("{2}", y) + delimiter + ("{3}", z);
motionData.WriteLine(dataText);
}
motionData.Close();
}
}
【问题讨论】:
-
你没有初始化位置:你应该用肢体的位置来初始化它。我说的对吗?
-
通过在
the wolf函数中声明局部变量的方式,您似乎将 C# 与 Javascript(Unityscript) 混合在一起。您不能在一个脚本中同时使用两种语言。你必须使用一个。 -
哦,这可能是因为我使用了来自 2 个不同地方的示例代码,并且我尝试将它们合并为我自己的。我没有意识到它有java脚本,但这是一个问题吗?我是否删除了 java 脚本部分?
-
还有我如何初始化四肢位置?