Неверные директивные слеши - PullRequest
0 голосов
/ 30 сентября 2018

У меня сейчас немного странная проблема.Я пытаюсь загрузить файл локализации JSON из StreamingAssets.Я использую Path.Combine, чтобы объединить StreamingAssetsPath и Path вместе, чтобы сформировать полный путь.Значение Path - это en-us.Но по какой-то причине Path.Combine выбрасывает \ при объединении строк, поэтому мой путь неверен.Если я изменю значение Path на / en-US, то он полностью отключит часть Application.StreamingAssetsPath.

Debug.Log, результат Path = en-US:

C: / Users / bluem / Documents / Fishtale / Assets / StreamingAssets \ en-US

Отладка. Результат журнала Path = / en-US

/en-US

Я просто не могу придумать головы или рассказы об этой странности lol.

public void LoadLocalizedText()
    {
        localizedText = new Dictionary<string, string>();
        string filePath = Path.Combine(Application.streamingAssetsPath, path);

        Debug.Log(filePath);

        if (File.Exists(filePath))
        {
            string dataAsJson = File.ReadAllText(filePath);
            LocalizationData loadedData = JsonUtility.FromJson<LocalizationData>(dataAsJson);

            for (int i = 0; i < loadedData.items.Length; i++)
            {
                localizedText.Add(loadedData.items[i].key, loadedData.items[i].value);
            }

            Debug.Log("Localization Manager: Data loaded, dictionary contains: " + localizedText.Count + " entries.");
        }
        else
        {
            Debug.LogError("Localization Manager: Cannot find data file name: " + filePath);
            return;
        }

        isReady = true;
    }

1 Ответ

0 голосов
/ 04 октября 2018

Я отвечу на свой вопрос.Предоставленные ответы были полезными, но не решением проблемы.

Проблема на самом деле не в коде, а скорее в ссылке на передаваемый файл.Файл должен включать расширение .json, иначе он просто не найдет его.Поэтому в этом случае ответом является изменение значения Path с en-US на en-US.json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...