Ошибка в непонятно для меня чем

Программирование на Юнити.

Ошибка в непонятно для меня чем

Сообщение frost 21 апр 2011, 14:42

Синтаксис:
Используется javascript
        if ( FireShot ) //Shooting the fire
                                                {
                                                        //LEFT GUN
                                                        ObjectCopy = Instantiate(FireShot, Fire.position, Fire.rotation); //Create a bullet object at the position of the left gun tip
                                                       
                                                        ObjectCopy.GetComponent("FireShot").Damage = FireShotDamage;
                                                       
                                                        if ( Random.value > 0.5 )    ObjectCopy.Translate(Fire.right * -0.05 , Space.World);
                                                        else ObjectCopy.Translate(Fire.right * 0.05 , Space.World);
                                                       
                                                        if ( Random.value > 0.5 )    ObjectCopy.Translate(Fire.forward * 0.05 , Space.World);
                                                       
                                                        ObjectCopy.rigidbody.AddForce(ObjectCopy.up * -150); //Add force to the bullet so it flies in the direction we're shooting
                                                }
                                               

Кусок кода, на вторую строку выдает ошибку. В чем проблема не пойму. Код ошибки вот:

NullReferenceException: Object reference not set to an instance of an object
Boo.Lang.Runtime.RuntimeServices.Dispatch (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, System.Object[] args, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.Dispatch (System.Object target, System.String cacheKeyName, System.Object[] args, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.SetProperty (System.Object target, System.String name, System.Object value)
PlayerControls.Update () (at Assets/Assets/Scripts/PlayerControls.js:363)

(ногами не бить,я только учусь)
Последний раз редактировалось frost 21 апр 2011, 14:50, всего редактировалось 2 раз(а).
Воистину удивителен ребенка разум.
Аватара пользователя
frost
UNITрон
 
Сообщения: 202
Зарегистрирован: 10 дек 2010, 15:46
Откуда: Luksemburg
  • ICQ

Re: Ошибка в непонятно для меня чем

Сообщение frost 21 апр 2011, 14:44

Ну так как я понял, здесь порсто не установлена ссылка на объект- хотя я все расставил.
Воистину удивителен ребенка разум.
Аватара пользователя
frost
UNITрон
 
Сообщения: 202
Зарегистрирован: 10 дек 2010, 15:46
Откуда: Luksemburg
  • ICQ

Re: Ошибка в непонятно для меня чем

Сообщение WhiteDevil 21 апр 2011, 14:50

Ну если на вторую строку - там где GetComponent, то у объекта нет такого скрипта или имя неправильное введено (регистр учитывается). Или же как пример, скрипт был, но по сам скрипт удалился, а компонента на объекте с этим именем осталась. Вобщем рыть в эту сторону).. Для дебага, делайте разделение: сначала получайте объект. Затем получайте компоненту. А затем присваивайте переменной значение. То есть делите одну на 3 строчки, чтобы было видно какой конкретно объект не проиинициализирован. На сишарпе у вас например такое не получится (одной строчкой, я имею ввиду).
Аватара пользователя
WhiteDevil
UNIверсал
 
Сообщения: 455
Зарегистрирован: 19 дек 2010, 15:55

Re: Ошибка в непонятно для меня чем

Сообщение frost 21 апр 2011, 15:55

Спасибо за совет
Воистину удивителен ребенка разум.
Аватара пользователя
frost
UNITрон
 
Сообщения: 202
Зарегистрирован: 10 дек 2010, 15:46
Откуда: Luksemburg
  • ICQ


Вернуться в Скрипты

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

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