Size: a a a

2020 April 15

ГХ

Гадя Петрович Хренов... in unity3d.ru
все можно передать что нужно
источник

ММ

Михаил Муратов... in unity3d.ru
Гадя Петрович Хренова
все можно передать что нужно
А как именно это можно реализовать?
источник

_P

_Awasaky_ Pinkfinger in unity3d.ru
Ты просил другое
источник

ГХ

Гадя Петрович Хренов... in unity3d.ru
Михаил Муратов
А как именно это можно реализовать?
что т хочешь передать?
источник

ММ

Михаил Муратов... in unity3d.ru
Урон, скорость, картинка
источник

V

Vladimir in unity3d.ru
Гадя Петрович Хренова
если тег enemy - значит мы столкнулись со врагом, если player - с плеером
Если говорить про универсальность, лучше тогда не проверять кто и с кем столкнулся
Если все и всем урон наносят, какая разница, кто нанес? Дернуть метод GetDamage и передать кол-во урона, которое наносит пуля
источник

f

formurik in unity3d.ru
Михаил Муратов
А как именно это можно реализовать?
После того, как заинстансил пулю, Получаешь компонент пули с полученного го go.GetComponent<Bullet>() и инициализируешь его, как тебе угодно.
источник

ГХ

Гадя Петрович Хренов... in unity3d.ru
в префаб добавь Sprite render компонент и будешь пихать туда спрайты пуль
урон чтоб передать над в скрипте пули добавить поля:
public int Damage, Speed;

ну и потом в том скрипте где ты вызываешь Instantiate ты его привяжи к переменной локальной типа var cloneBullet = Instantiate(...)
потом там же, cloneBullet.GetComponent<bulletClass>().Damage = 1;
источник

ГХ

Гадя Петрович Хренов... in unity3d.ru
formurik уже ответил тоже))
источник

ММ

Михаил Муратов... in unity3d.ru
Да, кончено, так можно сделать, если бы у меня было пуль 10 на экране, но там просто ливень пуль. А вызывать каждый раз GetComponent очень плохо для производительности
источник

f

formurik in unity3d.ru
Михаил Муратов
Да, кончено, так можно сделать, если бы у меня было пуль 10 на экране, но там просто ливень пуль. А вызывать каждый раз GetComponent очень плохо для производительности
Юзай пул объектов
источник

V

Vladimir in unity3d.ru
Михаил Муратов
Да, кончено, так можно сделать, если бы у меня было пуль 10 на экране, но там просто ливень пуль. А вызывать каждый раз GetComponent очень плохо для производительности
Не подскажу точно по производительности, но можешь в таком случае приведение типов в момент инстанса заюзать
источник

V

Vladimir in unity3d.ru
Хотя стоп, какого фига, сам себя запутал
Зачем тебе делать инстанс гейм объекта и получать с него компонент, если ты по дефолту можешь иметь ссылку на префаб, заранее определив нужный тебе тип
источник

ММ

Михаил Муратов... in unity3d.ru
То есть?
источник

ММ

Михаил Муратов... in unity3d.ru
Аааа, понял... То есть в Start это все определить?
источник

f

formurik in unity3d.ru
Михаил Муратов
Аааа, понял... То есть в Start это все определить?
Если у тебя "просто ливень пуль" забудь про инстанс, юзай пул объектов. Что-то типа такой хрени https://habr.com/ru/post/275091/
источник

SR

Serhii Romanenko in unity3d.ru
не, смотри:
[SerializedField] Bullet bulletPrefab;

void Shot()
{
 Bullet myBullet = Instantiate(bulletPrefab, position, rotation);
}
источник

SR

Serhii Romanenko in unity3d.ru
ну и да, с пулом объектов будет намного круче
источник

V

Vladimir in unity3d.ru
Смотри, у тебя есть компонент
public class TvoyaPulya : MonoBeh

Ты в том скрипте, где эту пулю собираешься создавать делаешЬ
public TvoyaPulya pulya

В момент создания
var pulya = Instantiate(pulya, pos, rot)
pulya.Init(опциональные параметры)
источник

V

Vladimir in unity3d.ru
Это самый простой вариант
источник