Unity-读取CSV文件,并赋值到Prefab

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--旋转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值