下面提供的代码似乎没有从
prefabname
中生成对象
void load()
{
string[] files = Directory
.GetFiles(Application.persistentDataPath, "*.furniture");
foreach (string file in files)
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream(file, FileMode.Open);
Classforsavingdatafurnitures data
= formatter.Deserialize(stream) as Classforsavingdatafurnitures;
stream.Close();
// Create game object from prefab
GameObject prefab = Resources.Load<GameObject>(data.nameofprefab);
if (prefab != null)
{
GameObject obj
= Instantiate(prefab, new Vector3(data.position[0],
data.position[1], data.position[2]),
Quaternion.Euler(data.rotation[0],
data.rotation[1], data.rotation[2]));
obj.name = data.nameofobject;
}
}
}
我希望它从文件中获取
nameofprefab
并创建游戏中对象的精确副本。这段代码应该从每个文件加载每个保存的对象.furniture
。 问题一: 在“Savingandloadingfurniture.cs”中,您将
furnit*ur*e
拼错为 furnit*ru*e
。如果没有这样的文件,foreach
循环甚至不会开始。
问题2: 您的资产中需要一个“资源”目录。它必须被称为exactly,但可以位于子文件夹中并且可以存在多次。它应该包含您要加载的所有内容。如果你想从子文件夹中加载一些东西,你必须记下路径。