(Решение) Разные значения параметров для ГО из 1 префаба.

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

(Решение) Разные значения параметров для ГО из 1 префаба.

Сообщение mvladlin 22 окт 2009, 14:49

Есть префаб, в течении игры инициализируется новый ГО из этого префаба, таким образом:
Код: Выделить всё
var newUser: Transform;
...
tempnew = Instantiate(newUser, Vector3(Random.Range(-12,12), Random.Range(12,120), Random.Range(-8,8)), Quaternion.identity);

Необходимо для каждого ГО устанавливать разные значения параметров, например Скорость, Сила, Жизнь и т.д.
Как сделать?
Последний раз редактировалось mvladlin 26 окт 2009, 14:22, всего редактировалось 1 раз.
Аватара пользователя
mvladlin
UNIт
 
Сообщения: 112
Зарегистрирован: 11 июл 2009, 19:53
Откуда: MO

Re: Как установить разные значения параметров для ГО из 1 префаб

Сообщение Mr_Anderson 22 окт 2009, 14:58

после инстанцирования получать ссылки на соответствующие компоненты у ГО tempnew (метод GetComponent(), например) и настраивать их параметры, смотря что нужно конкретно ;)
Mr_Anderson
UNIт
 
Сообщения: 143
Зарегистрирован: 16 апр 2009, 13:32

Re: Как установить разные значения параметров для ГО из 1 префаб

Сообщение Tolking 22 окт 2009, 15:04

Из Хелпа: http://unity3d.com/support/documentation/ScriptReference/Object.Instantiate.html

// Insantiate a rigidbody then set the velocity
var projectile : Rigidbody;
function Update () {
// Ctrl was pressed, launch a projectile
if (Input.GetButtonDown("Fire1")) {
// Instantiate the projectile at the position and rotation of this transform
var clone : Rigidbody;
clone = Instantiate(projectile, transform.position, transform.rotation);

// Give the cloned object an initial velocity along the current
// object's Z axis
clone.velocity = transform.TransformDirection (Vector3.forward * 10);
}
}
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Как установить разные значения параметров для ГО из 1 префаб

Сообщение mvladlin 22 окт 2009, 17:56

Спасибо за наводку, сейчас буду разбираться :)
Аватара пользователя
mvladlin
UNIт
 
Сообщения: 112
Зарегистрирован: 11 июл 2009, 19:53
Откуда: MO

Re: (Решение) Разные значения параметров для ГО из 1 префаба.

Сообщение mvladlin 26 окт 2009, 14:46

Ну вот разобрался
Код: Выделить всё
//newUser - префаб
var newUser: Transform;
//n - количество проходов/фактически количество новых ГО
var n=5;
...
function Start()
{
   for(i=1;i<=n;i++) {
   tempnew = Instantiate(newUser, Vector3(Random.Range(-12,12), Random.Range(12,120), Random.Range(-8,8)), Quaternion.identity);
      //устанавливаем параметры, "unitsscript" - имя скрипта в префабе с объявленными переменными armor и speed
      tempnew.GetComponent(unitsscript).armor= 1;
      tempnew.GetComponent(unitsscript).speed= 0.9;
      //установка scale производится таким (непохожим) образом:
      tempnew.transform.localScale = Vector3.Scale(transform.localScale, new Vector3(0.5,0.5,0.5));
      //а вот так можно установить имя ГО чтоб потом можно было обращаться к ним по именам: newName1 newName2  и т.д.
      tempnew.GetComponent(unitsscript).name="newName" + i;
   }
}
Аватара пользователя
mvladlin
UNIт
 
Сообщения: 112
Зарегистрирован: 11 июл 2009, 19:53
Откуда: MO


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

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

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