平常我們會將資料進行讀取與寫入到 .csv 檔,最近因為實驗室實驗的資料需要儲存,我希望能將我過程中的一些數據能同步到 Excel 儲存,方便我之後統計各項數據。所以這兩天我將會根據如何儲存資料到 .csv 的檔案,以及如何寫入資料到 .csv 的檔案。這邊會希望大家將你想要儲存的.csv檔案記得與我們的Scene 新增的環境同一個資料夾下。 那我們就開始今天讀取資料的實作,不會很難,非常的簡單,所以讓我們趕緊開始。 (誠實來說我明天有點忙@@,所以今天就針對之前相關的功能做,抱歉><)
首先新增一個 .csv 逗號區隔的Excel 檔案。
回到 Unity 我們可以看到該Excel 每個數值間都會有逗號間隔。
首先建置該空白物件 ReadData。接下來新增一個腳本。
接下來我們新增一個放置我們要讀取 Excel 檔的變數 textAssetData。
public TextAsset textAssetData;
public List<string> playerList = new List<string>() ;
string[] data = textAssetData.text.Split(new string[]{",", "\n"}, System.StringSplitOptions.None);
int dataParam = 4;
int dataRoll;
dataRoll = data.Length / dataParam;
string[] strr = new string[dataRoll];
for(int i = 0 ; i < dataRoll; i++)
{
for(int j = 4 * (i); j < 4 * (i+1); j++)
{
strr[i] += data[j] + " ";
}
if(i > 0)
playerList.Add(strr[i]); // store the player.
}
// print all data in string
for(int i = 0; i < dataRoll; i++)
{
Debug.Log(strr[i]);
}
Debug.Log("Hi! Jacky! Your data is = > " + playerList[0]);
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ReadFromCsv : MonoBehaviour
{
public TextAsset textAssetData;
public Text printDataText;
public List<string> playerList = new List<string>() ;
void Start()
{
ReadCsv();
}
void ReadCsv()
{
string[] data = textAssetData.text.Split(new string[]{",", "\n"}, System.StringSplitOptions.None);
int dataColumn = 4;
int dataRoll ;
print("data length: " + data.Length);
dataRoll = data.Length / dataColumn; // the line of the data
string[] strr = new string[dataRoll];
for(int i = 0 ; i < dataRoll; i++)
{
for(int j = 4*i; j < 4*(i+1); j++)
{
strr[i] += data[j] + " "; // combine the string
}
if(i > 0)
playerList.Add(strr[i]); // store the player.
}
string printPlayer = "";
// print all data in string
for(int i = 0; i < dataRoll; i++)
{
printPlayer += strr[i] + "\n";
}
printDataText.text = printPlayer;
Debug.Log("Hi! " + playerList[0]); // need to print Jacky
}
}
首先我們就在場景新增一個 Text。我們叫做 DataText。
接下來將其放入到我們的腳本中。
後續調整一下該 Text 的寬度與大小樣式等。看自己喜好這邊我就設定成這樣。
最終的成果如下: