アイテムシステムの作成①(ScriptableObjectを活用してアイテムのデータベースを作成)

ItemStatus
using System;
using UnityEngine;
[Serializable]
public class ItemStatus
{
public string itemName;
public Sprite itemIcon;
public int itemCount;
}

ItemDatabase
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class ItemDatabase : ScriptableObject // ★変更
{
public List<ItemStatus> itemList = new List<ItemStatus>();
}











ItemManager
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class ItemManager : MonoBehaviour
{
public ItemDatabase itemDatabase;
public Image itemIcon;
public TextMeshProUGUI itemCountLabel;
private int num = 0;
public AudioClip changeSound;
void Start()
{
itemIcon.sprite = itemDatabase.itemList[num].itemIcon;
UpdateUI();
}
void Update()
{
// アイテムの切り替え(Qボタン)
if (InputManager.isa.Player.ItemChange.triggered)
{
AudioSource.PlayClipAtPoint(changeSound, Camera.main.transform.position);
num = (num + 1) % itemDatabase.itemList.Count;
itemIcon.sprite = itemDatabase.itemList[num].itemIcon;
UpdateUI();
}
}
// アイテムを実行できるカウントの更新
public void UpdateUI()
{
itemCountLabel.text = "" + itemDatabase.itemList[num].itemCount;
}
}

【Unity6版】Danmaku(全20回)
他のコースを見る
ItemStatus
using System;
using UnityEngine;
[Serializable]
public class ItemStatus
{
public string itemName;
public Sprite itemIcon;
public int itemCount;
}

ItemDatabase
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class ItemDatabase : ScriptableObject // ★変更
{
public List<ItemStatus> itemList = new List<ItemStatus>();
}











ItemManager
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class ItemManager : MonoBehaviour
{
public ItemDatabase itemDatabase;
public Image itemIcon;
public TextMeshProUGUI itemCountLabel;
private int num = 0;
public AudioClip changeSound;
void Start()
{
itemIcon.sprite = itemDatabase.itemList[num].itemIcon;
UpdateUI();
}
void Update()
{
// アイテムの切り替え(Qボタン)
if (InputManager.isa.Player.ItemChange.triggered)
{
AudioSource.PlayClipAtPoint(changeSound, Camera.main.transform.position);
num = (num + 1) % itemDatabase.itemList.Count;
itemIcon.sprite = itemDatabase.itemList[num].itemIcon;
UpdateUI();
}
}
// アイテムを実行できるカウントの更新
public void UpdateUI()
{
itemCountLabel.text = "" + itemDatabase.itemList[num].itemCount;
}
}

アイテムシステムの作成①(ScriptableObjectを活用してアイテムのデータベースを作成)