Unityで2Dのアドベンチャーゲームを作っているのですが、アイテムを取得したらインベントリウィンドウに表示させるようにしたいです。
今UIのボタンを押すとウインドウが開きAllItemsという配列に入っているものがインベントリに表示されるようになっているのですが、取得したいアイテムを配列に代入するやり方がわかりません。
イメージしているのは拾うアイテムを認識してそれをAllItemsに代入すことです。
ご教授いただけると幸いです。
ソースコードは下記に記載しております。
下記スクリプトはインベントリのウインドウのUIにアタッチされています。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CSlotGrid : MonoBehaviour
{
[SerializeField]
private GameObject SlotPrefab;
private int SlotNumber = 20; [SerializeField] private CItem[] AllItems; private bool openningWindow = false; void Start() { transform.parent.gameObject.SetActive(false); } void OpenWindow() { for (int i = 0; i < SlotNumber; i++) { GameObject slot_obj = Instantiate(SlotPrefab, transform); CSlot slot = slot_obj.GetComponent<CSlot>(); if (i < AllItems.Length) { // スロットにアイテムをセット slot.SetItem(AllItems[i]); } else { slot.SetItem(null); } } openningWindow = true; } void CloseWindow() { foreach(Transform child in gameObject.transform) { Destroy(child.gameObject); } openningWindow = false; } public void PushButton() { if(openningWindow == true) { CloseWindow(); transform.parent.gameObject.SetActive(false); } else { transform.parent.gameObject.SetActive(true); OpenWindow(); } }
}
回答1件
あなたの回答
tips
プレビュー