Sử dụng ScriptableObject để lưu trữ dữ liệu
C# Code
/* ItemData.cs */
// 1. Tạo một script mới cho ScriptableObject
using UnityEngine;
[CreateAssetMenu(fileName = "New ItemData", menuName = "Inventory/Item Data")]
public class ItemData : ScriptableObject
{
public string itemName;
public Sprite icon;
public int price;
public string description;
}
/* ItemDisplay.cs */
// 2. Một script khác để sử dụng dữ liệu từ ScriptableObject
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class ItemDisplay : MonoBehaviour
{
public ItemData itemData; // Kéo ItemData asset vào đây trong Inspector
public TextMeshProUGUI nameText;
public Image iconImage;
void Start()
{
if (itemData != null)
{
nameText.text = itemData.itemName;
iconImage.sprite = itemData.icon;
}
}
}
/* Cách tạo asset: */
// 3. Trong Unity Editor, click chuột phải vào Project window,
// chọn Create -> Inventory -> Item Data để tạo một asset Item mới.Sử dụng ScriptableObject để tạo các asset dữ liệu có thể tái sử dụng, giúp quản lý cấu hình cho vật phẩm, kẻ địch hoặc các cài đặt game một cách linh hoạt và độc lập với scene.