All posts
postApril 26, 2026

ScriptableObjects as Data Containers

#csharp#unity#scriptableobjects#data
ScriptableObjects as Data Containers — slide 1
csharp
using UnityEngine;

[CreateAssetMenu(fileName="WeaponData", menuName="Aphelion/Weapon")]
public class WeaponData : ScriptableObject
{
    public string weaponName;
    public float damage;
    public float attackRate;
    public Sprite icon;
    public AudioClip swingSound;
}

// In any MonoBehaviour:
public class Weapon : MonoBehaviour
{
    [SerializeField] private WeaponData data;

    public void Attack() =>
        Debug.Log($"{data.weaponName} deals {data.damage} dmg");
}