我目前正在为德国的高中毕业。我的主题是弄清楚如何通过自动化提高交通路口的效率。为此,我在Unity3D中构建了一个小型模拟,现在我正在研究汽车的脚本和设置。为了比较多个设置,我想导出一些数据,以便用NumPy和Matplotlib进行分析。但要这样做,我必须从Unity导出数据。
现在汽车开过一些航点,我想得到汽车到达那些点的时间。 所以现在我只需要以一种格式将它们保存在Unity之外,这样我就可以轻松地将它导入我的jupyter笔记本中以便进行分析。 那我该怎么做呢?我知道这可能是一个简单的问题,但大多数指南都是针对游戏对象或角色的。所以他们为了不同的目的而保存了它。
更新
感谢您的帮助。我修复了它,现在它正在写入一个txt文件。 Code
当我运行脚本时,Unity是否有可能每次都创建一个新的txt文件。我不确定这是否甚至是可能的,因为我是技术再次启动整个系统并且上次没有信息。作为一个例子,它现在称为data1.txt,下次我启动代码时,它现在将其保存到data2.txt。
这是当前输出仅供参考。 Data.txt
void FixedUpdate()
{
speed = Engine.currentSpeed;
time = Time.time;
node = Engine.node;
xPos = Auto.transform.position.x;
zPos = Auto.transform.position.z;
if (IsRunning == true)
{
StartCoroutine(Wait());
}
}
public IEnumerator Wait()
{
IsRunning = false;
yield return new WaitForSeconds(WaitTimer);
Output();
IsRunning = true;
}
void Output()
{
print("[" + motorTorque + "," + maxSpeed + "," + steerAngle + "," + node + "," + time + "," + speed + "," + xPos + "," + zPos + "]");
StreamWriter writer = File.AppendText(@"C:\Users\kaykl\Documents\Schule\Info\Data\CarControle\data.txt");
writer.WriteLine("[" + motorTorque + "," + maxSpeed + "," + steerAngle + "," + node + "," + time + "," + speed + "," + xPos + "," + zPos + "]");
writer.Close();
if (IsRunning == true)
{
StartCoroutine(Wait());
}
if (node == 0 && cancel == false)
{
cancel = true;
}
else if (node == 0 && cancel == true)
{
writer.Close();
}
}