@KeanuCharlesReeves

Как в Unity указать обьект переменной из другого скрипта в инспекторе из кода?

Добрый день. Вопрос кажется нубским, наверное, но я никак не могу найти на него ответ. У меня есть процедурно-генерируемые обьекты с одним скриптом, а также у персонажа есть дочерний обьект с триггером и с переменной X. Когда тригер соприкасается с генерируемым обьектом, переменная X становится true, значение этой переменной мне нужно было передать в скрипт генерируемых обьектов. Я сделал это обьявив public GameObject LinkGameObject и прописав условие if LinkGameObject.X , где мне это необходимо
В итоге все работает, но только если я в инспекторе у генерируемого обьекта укажу ссылку на обьект триггера у public LinkGameObject :________) Что мне дописать чтобэ она сама себя назначала?)
Отдельно хотелось бы передать вам лучи добра, прямо через экраны ваших мониторов я передаю вам позитивную энергию, почувствуйте это, улыбнитесь и пусть все будет хорошо
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
Kentavr16
@Kentavr16
long cold winter
уважаемый Киану, хочу пожелать вам удачи в последующих съемках и спасибо за пожелания. По делу - если мне нужно получить ссылку на игровой объект в процедурно генерируемом экземпляре префаба, я создаю публичное поле в родителе(!) который генерирует префаб, и уже при генерации префаба передаю нужные данные. Вот наглядный пример -
//ссылка на игровой обьект
 public GameObject DigUiPanel;
**** остальной код***
//генерирую экземпляр 
 GameObject Layer = Instantiate(LayerPrefab, LayersStartPos.transform.position + layerCreatingDirection * i * offset, Quaternion.identity);
 Layer.transform.rotation = Quaternion.Euler(0, 0, 45);
 DigUI DigUIScript = Layer.GetComponentInChildren<DigUI>();
//задаю созданному экземпляру ссылку на реальный игровой объект
 DigUIScript.DigUIPanel = DigUiPanel;

Надеюсь что я правильно понял суть твоего вопроса.
П.С. - главное помнить что Instantiate возвращает ссылку на новосозданный объект, который ты можешь свободно менять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы