@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: Как реализовать передачу кодом в скрипте?
  • Вопрос задан
  • 800 просмотров
Решения вопроса 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?

Никак.

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

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

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