我目前工作的一個論文在德國讀高中。我的主題是弄清楚我們如何通過自動化使交通交叉點更加高效。爲此,我在Unity3D中構建了一個小型模擬器,現在我正在研究這款汽車的腳本和設置。爲了比較多個設置,我想導出一些數據以便使用NumPy和Matplotlib進行分析。但爲此,我必須將數據從Unity中導出。統一出口創造新的.txt文件
現在汽車正在駕駛一些航點,我想獲得汽車達到這些點的時間。 所以現在我只需要保存它們統一之外的格式,所以我可以很容易地將其導入我的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();
}
}
化妝使用JSON序列化的 – yes
您可以保存和會話之間的數據訪問使用[PlayerPrefs(https://docs.unity3d.com/ScriptReference/PlayerPrefs.html)。 – OsmanSenol