@Zimaell

Чего с первого раза появляется NullReferenceException?

Суть в том чтобы мне создать текстовые документы и потом в них записывать данные, первый метод проверяет нет ли такого и если нету то создает, второй метод берет данные из этих текстовых документов и помещает в переменные
public float MusicVolume = 0.4f, SoundVolume = 0.2f;
private void Test1(){
        if(!Resources.Load("Data/MusicVolume")){
            StreamWriter writer = new StreamWriter("Assets/Resources/Data/MusicVolume.txt", false);
            writer.Write(MusicVolume);
            writer.Close();
............................................
            }

private void Test2(){
        TextAsset TX;
        string Value = "";
        TX = Resources.Load("Data/MusicVolume") as TextAsset;
        Value = TX.text.Replace(" ", "").Replace(',', '.'); // <---- ошибка сюда указывает, и все больше ошибок нету
        MusicVolume = float.Parse(Value, CultureInfo.InvariantCulture);
        TX = Resources.Load("Data/SoundVolume") as TextAsset;
        Value = TX.text.Replace(" ", "").Replace(',', '.');
.....................................

Проблема в чем, при первом запуске мне выдает ошибку во втором методе
NullReferenceException: Object reference not set to an instance of an object

А вот при следующий запусках никаких ошибок, доки есть, переменные берутся без проблем....
А что не так с первым разом то?
  • Вопрос задан
  • 23 просмотра
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
Это код в эдиторе выполняется? Скорее всего надо Resources перезагрузить/обновить. Есть что то вроде AssetsDatabase.Reload (написал от балды - гуглите первое слово).

Если этот код не в эдиторе - то так делать нельзя.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Если вы сохраняете как
StreamWriter writer = new StreamWriter("Assets/Resources/Data/MusicVolume.txt", false);
то и грузите как StreamReader. Естественно работать будет только в редакторе и при некой доработки под виндой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы