创建和管理大量的数据对象: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;//作物产量
}

 

相关推荐

  1. UnityScriptableObject

    2024-07-22 09:40:05       24 阅读
  2. 【MySQL】创建管理数据库

    2024-07-22 09:40:05       27 阅读
  3. C++对象创建使用

    2024-07-22 09:40:05       34 阅读
  4. SQL 数据库语句- 创建管理数据库

    2024-07-22 09:40:05       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 09:40:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 09:40:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 09:40:05       45 阅读
  4. Python语言-面向对象

    2024-07-22 09:40:05       55 阅读

热门阅读

  1. 16、基于共享内存二叉树的LRU

    2024-07-22 09:40:05       14 阅读
  2. springboot集成kafka | 分布式消息发布和订阅系统

    2024-07-22 09:40:05       14 阅读
  3. shell脚本教程学习

    2024-07-22 09:40:05       13 阅读
  4. mybatis-config.xml中的environments是什么?

    2024-07-22 09:40:05       16 阅读
  5. 云原生:容器技术全解!

    2024-07-22 09:40:05       10 阅读
  6. 设计模式简述(一)

    2024-07-22 09:40:05       17 阅读