Задать переменную в другом скрипте через getcomponent

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

Задать переменную в другом скрипте через getcomponent

Сообщение Creator 19 июн 2010, 21:54

Доброго времени суток.

У меня в одном скрипте есть функция, которая с помощью Instantiate создаёт дупликат префаба.
Затем в той же функции я хочу кажому дубликату менять перемунную
(всем дубликатам привязан скрипт, где эта переменная объявлена). Вот эта функция
(пока что я задаю значение переменной - 30, потом там... вообщем, усложнится B-) ):

Код: Выделить всё
function Create_Object (prefab, x) {
   object_clone = Instantiate (prefab, Vector3(x, 0, 0), Quaternion.identity);
   circle_script = object_clone.GetComponent("planet_circle.js");
   circle_script.planet_speed = 30;
}

Поясняю, зачем давать аргумент "prefab"? Просто функция эта создаёт дупликаты разных префабов, соответственно так будет проще.
Но выдаёт:

Код: Выделить всё
NullReferenceException: Object reference not set to an instance of an object

Что делаю не так, подскажите.
Creator
UNец
 
Сообщения: 8
Зарегистрирован: 17 июн 2010, 13:04

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение gnoblin 20 июн 2010, 00:34

у компонента не должно быть .js написано ))
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение Creator 20 июн 2010, 08:47

Да пробовал, без него тоже самое.
Creator
UNец
 
Сообщения: 8
Зарегистрирован: 17 июн 2010, 13:04

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение Zaicheg 20 июн 2010, 11:11

На какой строке ошибка?
А так — или вместо префаба нулл подаёте или на префабе скрипта нет или с именем скрипта ошиблись.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение Maxim Mazurenko 20 июн 2010, 11:15

Выложи два своих скрипта так проще будет.
Maxim Mazurenko
UNец
 
Сообщения: 27
Зарегистрирован: 20 май 2010, 21:59

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение Maxim Mazurenko 20 июн 2010, 12:51

Посмотри как я сделал у меня все работает
Код: Выделить всё
var prefab: GameObject;
var x:float;
function Update () {
if(x>5){
object_clone = Instantiate (prefab, Vector3(0, 0, 0), Quaternion.identity);
circle_script = object_clone.GetComponent("qwer");
circle_script.planet_speed = 30;
}}

qwer
Код: Выделить всё
var planet_speed : float;
function Update () {
print(planet_speed);
}

посмотри или создаеться сам скрипт (qwer) когда Instantiate префаб
Maxim Mazurenko
UNец
 
Сообщения: 27
Зарегистрирован: 20 май 2010, 21:59

Re: Задать перемунную в другом скрипте через getcomponent

Сообщение Creator 20 июн 2010, 13:05

Извините, забыл ответить, разобрался. Дело в том, что первым делом у меня создавалось солнце, но при этом, скрипт, к которому я пытался добиться был только у префаба планеты. Это и вызывало ошибку.
Creator
UNец
 
Сообщения: 8
Зарегистрирован: 17 июн 2010, 13:04


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

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

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