Создание экземпляра пребафа. Unity выдаёт ошибку.

Общие вопросы о Unity3D

Создание экземпляра пребафа. Unity выдаёт ошибку.

Сообщение Vyrd 11 июл 2009, 21:34

Здравствуйте, я новичок в работе с Юните, в ходе изучения возникла проблема в создании экземпляра пребафа. Буду благодарен за любые идеи и помощь.


Код такой

Код: Выделить всё
function Fire () {

   // Вооружение выбрано
   
   if (activeFire) {
   
      if (ammoCount > 0&&Input.GetMouseButtonDown(0)) {
      
                // Создание копии

      var clone = Instantiate(projectile, transform.position, transform.rotation);

      // Движение вперед
      
      clone.velocity = transform.TransformDirection (Vector3.forward * 10);
      
                // Игнорирование коллизии
      
      Physics.IgnoreCollision(clone.collider, root.collider);
      
      lastShot = Time.time;
      ammoCount--;
   }
   }
   }


При создании копии Юнити выдаёт следующую ошибку, к сожалению не могу понять как избавиться от неё.

NullReferenceException: The prefab you want to instantiate is null.
UnityEngine.Object.Instantiate (UnityEngine.Object original, Vector3 position, Quaternion rotation) (at C:\builds\unity-trunk\unity\Runtime\Export\Generated\BaseClass.cs:51)

ps: BaseClass.cs - данного скрипта нет
Vyrd
UNец
 
Сообщения: 4
Зарегистрирован: 09 июл 2009, 09:57

Re: Создание экземпляра пребафа. Unity выдаёт ошибку.

Сообщение Neodrop 11 июл 2009, 21:46

Вот в эту переменную : projectile вы объект в Редакторе добавили?
Дебаггер сообщает вам, что переменная, из которой вы хотите скопировать объект, пуста.
Если вам не ясно, как добавить объект в переменную, настоятельно рекомендую вам пройти 3DPlatformer Tutorial из раздела Уроки.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Создание экземпляра пребафа. Unity выдаёт ошибку.

Сообщение Vyrd 11 июл 2009, 21:52

Извиняюсь, предыдущую проблему решил

раньше было

Код: Выделить всё
var projectile : Rigidbody;


изменил на и всё заработало

Код: Выделить всё
var projectile : Transform;


Но возникла другая проблема, почему-то не работает игнорирование коллизии (ракета взрывается сразу же при появлении)

Код: Выделить всё
var root  : GameObject;
....
Physics.IgnoreCollision(clone.collider, root.collider);


ps: модератор может удалить тему, ещё раз извините за поспешное создание темы
Vyrd
UNец
 
Сообщения: 4
Зарегистрирован: 09 июл 2009, 09:57

Re: Создание экземпляра пребафа. Unity выдаёт ошибку.

Сообщение Neodrop 11 июл 2009, 22:05

Перед "взрывом", определите, с кем она столкнулась. Может быть это какая то часть вашей модели, которая не попала под команду Physics.IgnoreCollision(clone.collider, root.collider);
Вопрос поставлен некорректно. По такому вопросу никогда в жизни не понять, что именно у вас не работает.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Создание экземпляра пребафа. Unity выдаёт ошибку.

Сообщение Vyrd 12 июл 2009, 00:48

Спасибо, помогло)
Vyrd
UNец
 
Сообщения: 4
Зарегистрирован: 09 июл 2009, 09:57


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: Google [Bot] и гости: 9