下面提供的代码似乎没有从文件
中获取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
。
如果你需要更多的信息,这里是GitHub的一个repo。
问题一:在"Savingandloadingfurniture.cs"你把furnit*ur*e
拼错成了furnit*ru*e
。如果没有这样的文件,foreach
循环甚至不会开始。
问题2:你需要一个"资源"目录。必须精确地命名为但是可以位于子文件夹中,并且可以存在多次。它应该包含您想要加载的所有内容。如果你想从子文件夹中加载一些东西,你必须注意路径。