创建和管理大量的数据对象:ScriptableObject

一、创建一个继承自ScriptableObject,名为ItemData的类
1、ItemData.cs
using UnityEngine;

[CreateAssetMenu(menuName = "Items/Item")]
public class ItemData : ScriptableObject
{
    public string description;
    public Sprite thumbnail;
    public GameObject gameModel;
}
 2、解析

(1) [CreateAssetMenu(menuName = "Items/Item")]:

      保存后可在Unity中Create菜单中出现Item

(2) public class ItemData : ScriptableObject:

      创建一个名为ItemData的类,该类继承自ScriptableObject

(3) ScriptableObject:

      使用ScriptableObject可方便地创建和管理大量的数据对象,而不需要创建和实例化类的实例

      通过创建ScriptableObject的子类,可定义和编辑属性、字段和方法,及自定义的序列化数据

      如:多个场景中重用的数据对象以存储和管理游戏中的数据:物品、角色属性、配置数据等

(4) 这个类包含description(描述)、thumbnail(缩略图)和gameModel(游戏模型)三个字段

     这些字段可以被用于定义物品的属性

3、使用

在Unity的Project视图中,通过右键菜单选择“Create” -> “Items” -> “Item”来创建ItemData的实例。

(1) 创建实例

(2) 设置实例 

二、创建ItemData类的子类EquipmentData
using UnityEngine;

[CreateAssetMenu(menuName = "Items/Equipment")]
public class EquipmentData : ItemData
{
    public enum ToolType
    {
        Hoe, WateringCan, Axe, Pickaxe
    }
    public ToolType toolType;
}

1、EquipmentData类包含ItemData类的所有字段(descriptionthumbnailgameModel

2、EquipmentData类还定义了额外字段toolType

三、创建ItemData类的子类Seed
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(menuName ="Items/Seed")]
public class SeedData : ItemData
{
    public int daysToGrow;
    public ItemData cropToYield;//作物产量
}

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值