Почему я возвращаю неправильный уровень иерархии для детей?C#

Место общения программистов C#
Ответить
Anonymous
 Почему я возвращаю неправильный уровень иерархии для детей?

Сообщение Anonymous »

Используя Unity, у меня есть холст с панелями. Есть две отдельные панели (Hotbar, инвентарь), каждая с панелями в нем (слот для Hotbar/Inventory). Я пытаюсь использовать функцию GetComponentSinChildren, чтобы добавить все эти слоты в массив, а затем отредактировать их спрайты оттуда. Однако вместо того, чтобы получать всех детей на панели Hotbar, он возвращает фактическую панель Hotbar. < /P>
Вот код: < /p>

Код: Выделить всё

using UnityEngine;
using UnityEngine.Tilemaps;
using System;
using System.Collections.Generic;

public class InventoryDisplay : MonoBehaviour
{
public Transform[] hotbar;
public Transform[] inventoryUI;
[SerializeField]
public Inventory inventory;
public GameObject hotbarObject;
public GameObject inventoryObject;
void Start()
{
hotbar = hotbarObject.GetComponentsInChildren();
inventoryUI = inventoryObject.GetComponentsInChildren();
}

void Update()
{
InventoryCheck();
}
void InventoryCheck()
{
for (int i = 0; i < hotbar.Length; i++)
{
if (inventory.items[i] != Resources.Load("Items/Empty"))
{
hotbar[i].GetComponent().sprite = inventory.items[i].sprite;
}
else
{
print(hotbar[i]);
hotbar[i].GetComponent().sprite = null;
}
}
for (int i = hotbar.Length; i < inventoryUI.Length; i++)
{
if (inventory.items[i] != Resources.Load("Items/Empty"))
{
inventoryUI[i].GetComponent().sprite = inventory.items[i].sprite;
}
else
{
inventoryUI[i].GetComponent().sprite = null;
}
}
}
}
Важной частью здесь является строка 16, где я ожидаю, что она даст всем детям под хотбарообъектом, но, похоже, она возвращает всех детей на главной панели.
Вот снимок экрана для некоторой визуальной справки: < /p>
Скриншот экрана Unity < /p>
Любые идеи о том, почему он функционирует как это?

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-children
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»