void LoadCSVData()
{
TextAsset textAsset=Resources.Load<"CSVdoc">;
if(textAsset==null)
{
Debug.LogError("CSV doc is missing");
}
string[] DataLine=textAsset.text.Split('\n');
string[][] Data= new string[DataLine.Length][];
for(int i=1;i<DataLine.Length;i++)
{
Data[i-1]=Data[i].Trim().Split(',');
}
for(int i=0;i<Data.Length;i++)
{
GameObject newPrefab=Instantiate(prefab,parent);
PrefabScript prefabScript=newPrefab.GetComponent<PrefabScript>();
if(prefabSript!=null)
{
prefabScript.LoadPrefabData(Data[i]);
}
}
}
1.TextAsset:Unity中原生的类,专门用来读取 -csv、-txt、-json文件。只要把文件放入Unity的工程,就会默认识别为TextAsset。
2.Resouces.Load<>:Unity自带的导入文件的方法。需要注意,文档必须要放在Resouces文件夹里面。如果文档文件放在Resouces的子文件夹中,则需要在< >中把路径补完整。
如 <"CoreData/Data">。
3.newPrefab.GetComponent<PrefabScript>() 获取newPrefab上挂载的名为PrefabScript的脚本。调用prefabScript中LoadPrefabData()的方法,循环载入Data[i]的信息。
必须加入判空,避免因为找不到组件脚本而崩坏。
4.Instantiate有三种实例化模式:
a:Instantiate(prefab,父Transform)=>生成的prefab实例会挂在在父Transform底下。一般会创建一个空物件作为父Transform,方便管理prefab。
b:Instantiate(prefab) =>prefab直接出现 在Hierarchy中。
c:Instantiate (prefab, spawnPos,spawnRot)=> spawnPos--生成的坐标;spawnRot--旋转。

930

被折叠的 条评论
为什么被折叠?



