@nano_e_t_4

Как получить доступ к полям выключенного объекта?

Всем привет
Хочу получить доступ к полю объекта (инвентарь), который выключаю при старте

public GameObject inventoryBlank;
    void Start()
    {
        inventory.SetActive(false);
    }

inventory соответственно линкую через редактор
но при попытке в дальнем получить доступ к объекту получаю ошибку:
Object reference not set to an instance of an object


но при включенном инвентаре доступ к переменным есть

на дочерних объектах инвентаря (к которым нужен доступ) нет канваса, поэтому метод через
MeshRenderer render = gameObject.GetComponentInChildren<MeshRenderer>();
 render.enabled = false;

тоже не взлетел (

подскажите, пожалуйста, кто знает, как получить доступ к переменным выключенного gameobject
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity Game Engine
VR for all
привидите пожалуйста пример где именно обращение к инвентарю и что именно там в инвентаре за код.

и отчасти Константин Китманов ошибается. а freeExec отчасти верно вам говорит. что при ссылке на объект у вас доступ к полям и методам будет.

и вот что важно бы вам уяснить, на ВЫКЛЮЧЕННЫХ объектах не работает НИКАКОЙ ПОИСК.
GetComponentInChildren - это тоже ПОИСК. и все ему подобное не сможет ничего найти на выключенных объектах.
может в инвентаре у вас не просто получение значения
inventory.ItemList[0].cost
а что то в духе
inventory.GetItemInfo(0);
///
void ItemInfo(int itemIndex)
{
something.GetComponent<T>();
}

и такое не будет отрабатывать, потому не ленитесь побольше кода прикладывать)) хотя и весь проект целиком тоже не стоит. хм, тут не просто угадать))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Собственно, никак. Единственный выход — выключать как-то по-другому, дизейблить рендерер, отключать обработчики, пропускать Update и т.д.
Ответ написан
Ваш ответ на вопрос

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

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