Ошибка NullReferenceException: Object reference...

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Ошибка NullReferenceException: Object reference...

Сообщение Semen 08 авг 2012, 15:28

Проект мультиплеер. Дано: игроки могут создавать предметы. Предметы изначально спавняться полупрозрачные и игрок должен их "активировать", тогда текстура меняется на нормальную.
Ошибка возникает у клиента, когда он входит после постройки предмета. (Т.е. у него не срабатывает функция смены прозрачной текстуры на нормальную).
Сама ошибка:
NullReferenceException: Object reference not set to an instance of an object
Arhitecture.FULL ()

Вызов функции:
Синтаксис:
Используется csharp
 networkView.RPC("FULL",RPCMode.AllBuffered);


Сама функция:
Синтаксис:
Используется csharp
        [RPC]
        private void FULL()
        {
       

        foreach (Renderer joint in render) {

                joint.material=_Materials[I];
                                        I++;
                }
}
Semen
UNец
 
Сообщения: 20
Зарегистрирован: 07 авг 2012, 16:55

Re: Ошибка NullReferenceException: Object reference...

Сообщение powernic 08 авг 2012, 16:24

вот как я делал бы на твоем месте
Синтаксис:
Используется csharp
foreach(MeshRenderer joint  in render)
                {      

  joint.material=_Materials[I];
                                        I++;
                        }
 


или

Синтаксис:
Используется csharp
foreach(MeshRenderer joint in GetComponentsInChildren<MeshRenderer>())
                {      
                        if (joint.sharedMaterial.mainTexture!=null){
                          joint.material=_Materials[I];
  I++;
                        }
                        }
       
        }
Аватара пользователя
powernic
UNIт
 
Сообщения: 78
Зарегистрирован: 06 июл 2012, 21:01

Re: Ошибка NullReferenceException: Object reference...

Сообщение Semen 08 авг 2012, 17:30

Спасибо конечно, но я не очень понял, как это поможет исправить ошибку?
Semen
UNец
 
Сообщения: 20
Зарегистрирован: 07 авг 2012, 16:55

Re: Ошибка NullReferenceException: Object reference...

Сообщение powernic 08 авг 2012, 23:10

У тебя видимо проблема в переменной render, так как пишет это переменная принимает нулевое значение, что не имеет место быть. исправить можно написав условия исключения этого значения.
Синтаксис:
Используется csharp
foreach (Renderer joint in render) {
if (joint.material!=null){
                joint.material=_Materials[I];
                                        I++;
}
}
 
Аватара пользователя
powernic
UNIт
 
Сообщения: 78
Зарегистрирован: 06 июл 2012, 21:01

Re: Ошибка NullReferenceException: Object reference...

Сообщение Semen 08 авг 2012, 23:40

Не помогло... Ошибка то указывает именно на эту строчку
Синтаксис:
Используется csharp
foreach(MeshRenderer joint  in render)
Semen
UNец
 
Сообщения: 20
Зарегистрирован: 07 авг 2012, 16:55

Re: Ошибка NullReferenceException: Object reference...

Сообщение powernic 09 авг 2012, 01:02

render чему равно?
Аватара пользователя
powernic
UNIт
 
Сообщения: 78
Зарегистрирован: 06 июл 2012, 21:01

Re: Ошибка NullReferenceException: Object reference...

Сообщение Receptor 09 авг 2012, 05:29

Да, нужно посмотреть что есть render :) скорее всего там черт затаился
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Ошибка NullReferenceException: Object reference...

Сообщение Semen 09 авг 2012, 12:08

render задается в том же скрипте в Start()
Синтаксис:
Используется csharp
render =transform.gameObject.GetComponentsInChildren<Renderer>();

И еще раз повторю, Если оба игрока на сервере, и кто-то строит объект, То все просто отлично, все работает. Если игрок зайдет после постройки объекта - выдается эта ошибка..
Semen
UNец
 
Сообщения: 20
Зарегистрирован: 07 авг 2012, 16:55


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28