@JustCommonNick

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

Добрый день, только начинаю изучать Unity.
Дано:
Игровые объекты (шашки) с одним и тем же скриптом.
Префаб в виде зеленого квадрата (он показывает куда можно сходить).
Пустой объект с скриптом, в котором записываются глобальные переменные.
638db25cbcf80019021913.png
В скрипте global есть переменная, в которую записывается игровой объект (в моем случае, при нажатии на шашку, в эту переменную передается эта самая шашка) для дальнейшей работы с этим объектом в других скриптах.
public class global : MonoBehaviour
{
    public GameObject checkername = null;
}

Передается так:
[SerializeField] private global _global;

    void OnMouseDown(){
        _global.checkername = gameObject;
        Debug.Log(_global.checkername);

В этом случае, я могу к скрипту на объекте прикрепить ссылку на пустой объект global.
В случае же с префабом, я туда не могу прикрепить нужные мне игровой объект по умолчанию.
638db3821d5f2263905987.png
Как мы видим на скрине, там пусто.
Так вот, как мне сделать так, чтобы в эту переменную [SerializeField] private global _global; передавался по умолчанию игровой объект global?

UPD: Как реализовать передачу кодом в скрипте?
  • Вопрос задан
  • 1169 просмотров
Решения вопроса 1
@JustCommonNick Автор вопроса
В общем и целом сам разобрался, прикреплю пример тут, может кому будет полезным.
При создании prefab я передаю ему ссылку на нужный GameObject.

Переменная на создающем prefab скрипте, к которой в ручную через интерфейс Unity я подцепил ссылку на нужный игровой объект:
[SerializeField] private global _global;

Создрание prefab и передача ему ссылки на нужный объект
Instantiate(prefab, new Vector2(thisposx, thisposy - 2.5F), Quaternion.identity).GetComponent<move>()._global = _global;


GetComponent<move> - скрипт на префабе
GetComponent<move>()._global - переменная в скрипте move
GetComponent<move>()._global = <b>_global</b> - переменная с ссылкой в текущем скрипте
spoiler
[SerializeField] private global _global;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
передавался по умолчанию игровой объект global?

Никак.

Передавай его кодом при создании из префаба.
Ответ написан
Ваш ответ на вопрос

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

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