Страница 1 из 1

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

СообщениеДобавлено: 19 июн 2010, 21:54
Creator
Доброго времени суток.

У меня в одном скрипте есть функция, которая с помощью 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

Что делаю не так, подскажите.

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

СообщениеДобавлено: 20 июн 2010, 00:34
gnoblin
у компонента не должно быть .js написано ))

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

СообщениеДобавлено: 20 июн 2010, 08:47
Creator
Да пробовал, без него тоже самое.

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

СообщениеДобавлено: 20 июн 2010, 11:11
Zaicheg
На какой строке ошибка?
А так — или вместо префаба нулл подаёте или на префабе скрипта нет или с именем скрипта ошиблись.

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

СообщениеДобавлено: 20 июн 2010, 11:15
Maxim Mazurenko
Выложи два своих скрипта так проще будет.

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

СообщениеДобавлено: 20 июн 2010, 12:51
Maxim Mazurenko
Посмотри как я сделал у меня все работает
Код: Выделить всё
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 префаб

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

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