Как инициализировать UI объект в юнити (а может проблема и в другом)
Не могу инициализировать пустой UI объект, каждый раз при проверке на пустоту пишет:
Null
UnityEngine.Debug:Log (object)
CardManager:ShowCards (System.Collections.Generic.List`1<CardData>) (at Assets/Scripts/CardManager.cs:34)
в инспекторе инициализирован. Код:
public class CardManager : MonoBehaviour
{
public GameObject cardPrefab;
public Transform container;
public int maxVisibleCards = 5;
public float spawnDuration = 0.5f;
public float maxRadius = 300f;
private List<GameObject> activeCards = new List<GameObject>();
public void ShowCards(List<CardData> cardsData)
{
foreach (var c in activeCards)
Destroy(c);
activeCards.Clear();
int count = Mathf.Min(cardsData.Count, maxVisibleCards);
List<CardData> selectedCards = new List<CardData>(cardsData);
for (int i = 0; i < count; i++)
{
GameObject hh = cardPrefab;
Debug.Log(cardPrefab);
if (cardPrefab != null)
{
var cardGO = Instantiate(hh, container);
var cardScript = cardGO.GetComponent<UICardController>();
cardScript.UpdateUI(selectedCards[i]);
cardGO.transform.localPosition = Vector3.zero;
Vector3 targetPos = new Vector3(0, 0, maxRadius);
activeCards.Add(cardGO);
StartCoroutine(PopupAnimation(cardGO.transform, targetPos, spawnDuration));
}
}
}
вне зависимости от объекта он не инициализируется

Ответы (1 шт):
Автор решения: Adron
→ Ссылка
Решил проблему искуственным нахождением префаба, заменив инспектор. Код:
GameObject cardPrefab= Resources.Load<GameObject>("Prefab/CardPrefab");