08-09-2020, Saat: 17:59
Bir öğreticiden ders alıp mobil oyun oluşturuyorum ancak her şeyi tıpatıp kodlamama rağmen karşılaştığım sorun var ve çözemiyorum.
Umarım yardım edebilirsiniz şimdiden teşekkürler.
Komut listem
Hata Satırı:
Hata: ArgumentException: The Object you want to instantiate is null.
Umarım yardım edebilirsiniz şimdiden teşekkürler.
Komut listem
Kod:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UI_Inventory : MonoBehaviour
{
private Inventory inventory;
private Transform itemSlotContainer;
private Transform itemSlotTemplate;
private void Awake()
{
itemSlotContainer = transform.Find("itemSlotContainer");
itemSlotTemplate = itemSlotContainer.Find("itemSlotTemplate");
}
public void SetInventory(Inventory inventory)
{
this.inventory = inventory;
inventory.OnItemListChanged += Inventory_OnItemListChanged;
RefreshInventoryItems();
}
private void Inventory_OnItemListChanged(object sender, System.EventArgs e)
{
RefreshInventoryItems();
}
private void RefreshInventoryItems()
{
foreach (Transform child in itemSlotContainer)
{
if (child == itemSlotTemplate) continue;
Destroy(child.gameObject);
}
int x = 0;
int y = 0;
float itemSlotCellSize = 98f;
foreach (Item item in inventory.GetItemList())
{
RectTransform itemSlotRectTransform = Instantiate(itemSlotTemplate, itemSlotContainer).GetComponent<RectTransform>();
itemSlotRectTransform.gameObject.SetActive(true);
itemSlotRectTransform.anchoredPosition = new Vector2(x * itemSlotCellSize, y * itemSlotCellSize);
Image image = itemSlotRectTransform.Find("image").GetComponent<Image>();
image.sprite = item.GetSprite();
x++;
if (x > 4)
{
x = 0;
y++;
}
}
}
}
Hata Satırı:
Kod:
foreach (Transform child in itemSlotContainer)
Hata: ArgumentException: The Object you want to instantiate is null.