DarkLight Games писал(а):Привет
В общем, у меня возникла такая проблема: у меня есть скрипт босс и скрипт его пули. Оба скрипта находятся в двух разных префабах. Мне из скрипта босса нужно передать вектор пуле. Подскажите пожалуйста, как это сделать?
самый простой способ, который мне нравится. предположим скрипт движения пули называется MoveBullet. а скорость хранится в float Speed(лишь пример, чтобы уловить идею) тогда
Используется csharp
public MoveBullet BulletPrefub;
//когда нам надо заспаунить пулю
Instatiate(BulletPrefub).Speed = 500;
если нам надо сделать еще что-то(например задать время уничтожения пули). можно Instatiate присвоить переменной
Используется csharp
MoveBullet mb = Instatiate(BulletPrefub);
mb.Speed = 500;
mb.gameObject.Destroy(gameObject,500); //сейчас не вспомню как правильно дестрой вызывать
чуть менее красиво будет с классическим вариантом
Используется csharp
public GameObject BulletPrefub;
//когда спауним пулю
GameObject go = Instatiate(BulletPrefub);
go.getComponent<MoveBullet>().Speed = 500;
плюс первого варианта - мы не ищем компоненты через тяжелые getComponent, а сразу передаем их через префаб(при перетаскивании префаба, мы сразу даем ссылку на компонент MoveBullet)