(アイテムステータス)
・新規にC#スクリプトの作成
・名前を「ItemStatus」に変更
・下記のコードを書いてチェック
using UnityEngine;
// ★追加
using System;
// ★追加
[Serializable]
public class ItemStatus
{
public string itemName;
public Sprite itemIcon;
public int itemPrice;
}
(アイテムデータベース)
・新規に「ScriptableObject Script」を作成
・名前を「ItemDatabase」に変更
・下記のコードを書いてチェック
using UnityEngine; using System.Collections.Generic; [CreateAssetMenu(fileName = "ItemDatabase", menuName = "Scriptable Objects/ItemDatabase")] public class ItemDatabase : ScriptableObject { public List<ItemStatus> itemList; }
(設定)
・「Create」→「Scriptable Object」→「ItemDatabase」をクリック
・「ItemDatabase」を選択した状態で「+」をクリック
・「ItemName」「ItemIcon」「ItemPrice」を必要な数だけ設定
(アイテムのステータスを表示するUIの作成)
(サンプルコード)
using UnityEngine;
// ★追加
using TMPro;
using UnityEngine.UI;
public class ItemManager : MonoBehaviour
{
public ItemDatabase itemData;
public Image itemImage;
public TextMeshProUGUI itemNameLabel;
public TextMeshProUGUI itemPriceLabel;
private int num = 0;
void Start()
{
itemImage.sprite = itemData.itemList[num].itemIcon;
itemNameLabel.text = itemData.itemList[num].itemName;
itemPriceLabel.text = itemData.itemList[num].itemPrice.ToString();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
num = (num + 1) % itemData.itemList.Count;
itemImage.sprite = itemData.itemList[num].itemIcon;
itemNameLabel.text = itemData.itemList[num].itemName;
itemPriceLabel.text = itemData.itemList[num].itemPrice.ToString();
}
}
}
(設定)
・新規に「Create Empty」オブジェクトを作成
・名前を「ItemManager」に変更
・このオブジェクトに「ItemManager」スクリプトを追加
・空欄に該当の「Databese」と「UI」を追加
・設定が完了したらゲームを再生
・スペースキーを押すたびに、アイテムが切り替われば成功です。