@KeanuCharlesReeves

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

Добрый день. Вопрос кажется нубским, наверное, но я никак не могу найти на него ответ. У меня есть процедурно-генерируемые обьекты с одним скриптом, а также у персонажа есть дочерний обьект с триггером и с переменной X. Когда тригер соприкасается с генерируемым обьектом, переменная X становится true, значение этой переменной мне нужно было передать в скрипт генерируемых обьектов. Я сделал это обьявив public GameObject LinkGameObject и прописав условие if LinkGameObject.X , где мне это необходимо
В итоге все работает, но только если я в инспекторе у генерируемого обьекта укажу ссылку на обьект триггера у public LinkGameObject :________) Что мне дописать чтобэ она сама себя назначала?)
Отдельно хотелось бы передать вам лучи добра, прямо через экраны ваших мониторов я передаю вам позитивную энергию, почувствуйте это, улыбнитесь и пусть все будет хорошо
  • Вопрос задан
  • 61 просмотр
Решения вопроса 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 возвращает ссылку на новосозданный объект, который ты можешь свободно менять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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