Unity导出会创建新的.txt文件

时间:2017-08-11 18:51:00

标签: c# xml file unity3d statistics

我目前正在为德国的高中毕业。我的主题是弄清楚如何通过自动化提高交通路口的效率。为此,我在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();
    }

}

0 个答案:

没有答案