@Jores_T

Как передать переменную в скрипт, прикрепленный к объекту?

Добрый день, пишу платформер для обучения, сам новичок.
Столкнулся с такой базовой проблемой, не знаю как её решить.
В общем пытаюсь сделать стрельбу у персонажа.
Сделал префаб из объекта со спрайтом летящей пули, прикрепил к нему скрипт, в котором прописал velocity с нужной скоростью с вектором "вправо".
К объекту Player прикреплен скрипт, где происходит обработка выстрела - создаётся экземпляр префаба пули в нужной точке, после этого она летит вправо с нужной скоростью. Сделал через Instantiate()
Задача такая - когда игрок смотрит влево стрелять влево, сейчас логично что летит пуля только вправо.

Я не понимаю, как при создании объекта через Instantiate() передать в скрипт, присоединённый к этому объекту булеву переменную flipX. При её значении 'true' я бы вектор скорости ставил не "вправо", а "влево". Для меня важно понять как это в принципе реализуется или вообще надо по-другому это реализовывать меняя архитектуру.

Есть решение в лоб - сделать 2 префаба один для полёта влево, второй для полёта вправо и создавать нужный в зависимости от направления взгляда. Но мне кажется это каким-то топорным решением.

По поводу иерархии - экземпляры префаба спавнятся в корне, по соседству с Player. (не знаю важно ли это)
  • Вопрос задан
  • 630 просмотров
Решения вопроса 1
@S0HardCore
GameObject GO = Instantiate(...);
GO.GetComponent<MyScript>().myVariable = ...;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы