簡體   English   中英

從 unity3d 中的腳本創建文本文件存在延遲/錯誤

[英]Creating a text file from script in unity3d is having a delay / error

編輯 * 調用 AssetDatabase.Refresh,該文件現在出現在編輯器中,但帶有一個加載圖標,並且在一段時間內仍無法寫入。 該文件以前顯示在 SSD 上的選定位置,只是不統一。 *

我正在從腳本統一創建一個文本文件,然后下一行我嘗試寫入該文件。 問題是在執行下一行之前未創建文件,我可以關閉和打開編輯器的播放按鈕,但文件仍然不存在,它僅在我最小化編輯器或打開另一個程序然后 go 時出現背部。 我可以在文件不存在的情況下停止在編輯器上播放,然后最小化和最大化編輯器 window,它將出現在我選擇創建它的位置。 希望我能正確解釋我的問題。

這是下面的代碼

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();
   
}

關於為什么第一行以如此奇怪的方式完成的任何建議? 在創建文件並且下一行可以寫入該文件之前,代碼的 rest 不會執行。 我已經用 File.Create 和 File.CreateText 嘗試過這個並得到同樣的問題。 我也嘗試在 Awake 和 start 方法中這樣做

該文件應該幾乎立即存在於磁盤上。 如果您說它在 Unity 中不存在,那么是的,這是有道理的。 您需要調用AssetDatabase.Refresh 調用后,資產應出現在您要查找的位置。

如果問題是該文件實際上不存在並且您遇到錯誤,那么錯誤是什么? 你能發帖嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM