В то время как в редакторе запускаются текстовые уведомления с анимацией,
но не тогда, когда я строю и запускаю.
Я могу выделить несколько возможных причин, по которым ваш код не работает в сборке. Могло быть больше, что я пропустил, но вижу их ниже:
1 . Откуда вы пытаетесь загрузить файл json:
{1, "/Resources/GameScript.json"}
A . При чтении из папки «Ресурсы» вы не включаете «Ресурсы» в путь. Путь относительно папки Resource.
B . Не включайте в путь имена расширений файлов, например .txt, .jpeg, .mp3.
Чтобы исправить оба, заменить :
{1, "/Resources/GameScript.json"}
с
{1, "GameScript"}
2 . Как вы сейчас читаете файл:
string jsonString = File.ReadAllText(Application.dataPath + resourcePath);
В данный момент вы читаете файл с File.ReadAllText
. Это будет работать в редакторе, но не в сборке, потому что это не то, как читать файл в папке ресурсов.
Файлы в папке «Ресурсы» читаются с помощью Resources API.
Чтобы исправить это, заменить :
string jsonString = File.ReadAllText(Application.dataPath + resourcePath);
с
TextAsset txtAsset = Resources.Load<TextAsset>(resourcePath);
string jsonString = txtAsset.text;
Убедитесь, что файл json находится в папке с именем «Resources» в вашем проекте, и это должно быть написано правильно.
Другие проблемы, вероятно, возникнут позже:
Бесконечный цикл:
Код while(inZone)
не может выйти. Если вы когда-нибудь столкнетесь с этим, вы рискуете заморозить вашу программу, потому что в этом цикле нет кода, который мог бы сделать inZone
ложным. Вы должны найти способ переписать этот код.