Search Unity

Ошибка при скачивании MonoDevelop-Unity

Discussion in 'Scripting' started by Inquisit0r, Jul 5, 2017.

?

Как решить данную проблему? Выдаёт ошибку, а также ни один класс или функция не подсвечены.

  1. Эту проблему можно решить таким способом:

    100.0%
  2. Поищи на таких страницах

    0 vote(s)
    0.0%
Multiple votes are allowed.
  1. Inquisit0r

    Inquisit0r

    Joined:
    Jul 5, 2017
    Posts:
    2
  2. Inquisit0r

    Inquisit0r

    Joined:
    Jul 5, 2017
    Posts:
    2
    Использую Windows 10, Unity 5.6.2f1. В чем проблема?
     
  3. DimitriX89

    DimitriX89

    Joined:
    Jun 3, 2015
    Posts:
    551
    На скриншоте оно указывает на девятую строку, не? Дело не в "ошибке скачивания" а в том что один из компонентов, на который ссылается скрипт, не существует. (Английский текст ошибки "NullReferenceException: Object reference is not set to instance of object" ). Синтакс в данном случае корректен, но нужно проверять все ссылки шаг за шагом. Во-первых, желательно узнать какой именно рендерер (SpriteRenderer, MeshRenderer или SkinnedMeshRenderer) используется объектом, и прописать GetComponent непосредственно для него:

    this.gameObject.GetComponent<SkinnedMeshRenderer>().color = Color.red

    во вторых, не все материалы могут иметь свойство color, это зависит от шэйдера используемого материалом.

    Если заранее неизвестно, какими компонентами обладает объект, то полезно добавить условие "не равно null" перед тем как пытаться чего-то сделать в скрипте

    if (this.gameObject.GetComponent<SkinnedMeshRenderer>() != null){
    //исполнить эту строку только в том случае если SkinnedMeshRenderer существует
    }

    В этом случае программа продолжит работу даже если компонент отсутствует