📅  最后修改于: 2023-12-03 15:20:52.704000             🧑  作者: Mango
在Unity中获取预制件,可以使用AssetDatabase类,但如果需要从文件夹中获取预制件,则需要使用Directory类和FileInfo类。
首先,我们需要在Unity中创建一个文件夹,将该文件夹中包含的预制件导入到项目中。为了演示方便,我们将文件夹命名为Prefabs,并将三个预制件导入其中。
在C#中,获取文件夹路径可以使用Directory类。在Unity中,获取当前项目路径可以使用Application.dataPath,然后将文件夹名称添加到路径中。
string folderPath = Application.dataPath + "/Prefabs/";
我们需要遍历文件夹中所有预制件的名称,可以使用Directory类的GetFiles方法,以及FileInfo类的Name属性。
string[] prefabNames = Directory.GetFiles(folderPath).Select(x => new FileInfo(x).Name).ToArray();
最后,我们使用Resources类的Load方法,根据预制件名称加载预制件。
GameObject prefab = Resources.Load<GameObject>("Prefabs/" + prefabName);
using System.IO;
using System.Linq;
using UnityEngine;
public class PrefabLoader : MonoBehaviour
{
private void Start()
{
string folderPath = Application.dataPath + "/Prefabs/";
string[] prefabNames = Directory.GetFiles(folderPath).Select(x => new FileInfo(x).Name).ToArray();
foreach (string prefabName in prefabNames)
{
GameObject prefab = Resources.Load<GameObject>("Prefabs/" + prefabName);
Instantiate(prefab, Vector3.zero, Quaternion.identity);
}
}
}
以上就是从文件夹中获取预制件的方法,使用Directory类和FileInfo类可以方便地获得文件夹中所有文件的信息,然后可以根据这些信息使用Resources类加载预制件。