1.先定义一个类数据类型
[Serializable]
public class FoodItemData
{
public int foodID; // 食物唯一ID
public string foodName; // 食物名称
[TextArea(3, 10)] // 多行文本输入
public string description; // 食物描述
public float price; // 食物价格
public Sprite icon; // 食物图标(可选)
}
2.创建一个类继承ScriptObject
[Serializable]
[CreateAssetMenu(fileName = "FoodData", menuName = "Inventory/foodData")]
public class FoodData : ScriptableObject
{
public List<FoodItemData> fooddatas=new();
}
3.[Serializable]
的功能
-
允许类/结构体被序列化:
标记了[Serializable]
的类可以被 Unity 的序列化系统处理,使其:-
在 Inspector 窗口中显示可编辑字段
-
能够保存到场景/预制体/ScriptableObject 中
-
支持深拷贝(
JsonUtility
等工具) -
支持List序列化嵌套显示编辑
-
4.[CreateAssetMenu(fileName = "FoodData", menuName = "Inventory/foodData")]
这个是创建文件FoodItemData 在Asset文件下右键点击找到Inventory/foodData选择就能创建完成了