在unity3d中从脚本创建文本文件有延迟/错误



EDIT*调用AssetDatabase。刷新后,该文件现在显示在编辑器中,但带有加载图标,在一段时间内仍无法写入。该文件之前显示在SSD上的选定位置,只是不一致。*

我正在从一个脚本中创建一个统一的文本文件,然后我尝试将下一行写入该文件。问题是在执行下一行之前没有创建文件,我可以切换编辑器的播放按钮,但文件仍然不在那里,只有当我最小化编辑器或打开另一个程序然后返回时才会出现。我可以在文件不在的情况下停止播放编辑器,然后最小化和最大化编辑器窗口,它会出现在我选择创建它的地方。希望我能正确解释我的问题。

这是下面的代码

public class ItemDatabase : MonoBehaviour
{
public static GameObject itemContainerPrefab;
private string dataPath;
private string jsonData;
private Dictionary<string, Item> items = new Dictionary<string, Item>();
private Dictionary<string, GameObject> prefabs = new Dictionary<string, GameObject>();
private JSONDataWrapper wrapper;
private void Awake()
{

File.Create(Application.streamingAssetsPath + "/JSON/HELLOFILE.json");
File.WriteAllText(Application.streamingAssetsPath + "/JSON/HELLOFILE.json", "hello");
itemContainerPrefab = Resources.Load<GameObject>("Prefabs/Item/ItemContainer");
dataPath = Application.streamingAssetsPath + "/JSON/ItemData.json";
jsonData = File.ReadAllText(dataPath);
wrapper = JsonUtility.FromJson<JSONDataWrapper>(jsonData);
wrapper.Initialize();
BuildDatabase();

}

有什么建议吗?为什么第一条线是以如此奇怪的方式完成的?在创建文件并且下一行可以写入该文件之前,其余代码不会执行。我在两个File中都尝试过。创建并归档。CreateText并得到相同的问题。我也尝试过在唤醒和启动方法中这样做

文件应该立即存在于磁盘上。如果你说它不存在于Unity,那么是的,这是有道理的。您需要调用AssetDatabase。刷新调用后,资产应显示在您要查找的位置。

如果问题是该文件实际上不存在,并且您收到了一个错误,那么错误是什么?你能贴出来吗?

最新更新