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

news2024/9/21 14:41:59
一、创建一个继承自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;//作物产量
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1940317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十五、公开课

1.不借助第三个变量,交换两个变量的值。 (1)a ab; (2)a a^b; b a-b; b a^b; a a-b; …

Unity UGUI 之 Image和Rawimage

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.Image是什么 Unity - 手册:图像 精灵格式是什么? 1.2重要参数 …

操作系统安全:Windows隐藏账户的安全问题与实战操作。

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 Windows系统的…

个人简约低调主页,三种主题风格源码

一、源码描述 这是一款简约低调的个人主页源码,提供了数百个精美的动画效果,拥有完美的视觉体验和交互体验,可操作性也达到了巅峰,源码支持三种主题风格,白色、黑色和蓝色渐变,所有这些效果都是通过原生Ja…

文件IO(Ubuntu)

文件IO 目的 将数据写入文件中 与标准IO的区别 (为什么要学习文件IO) 标准IO只能操作普通文件和特殊的管道文件 文件IO能操作几乎所有的的文件 缓存区的目的 标准IO有缓存区 文件IO没有缓存区 根据右图描述 标准IO 文件IO buffer缓存区 有缓存区…

c++基础(类和对象中)(类的默认成员函数)

目录 一.构造函数(类似初始化) 1.概念 2.构造函数的特点 二.析构函数(类似 销毁对象/空间) 三.拷贝构造函数(类似复制粘贴的一种 初始化 ) 1.概念: 2.拷贝构造的特点: 四.赋值运算符重载&#xff08…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(四)-无人机认证与授权

引言 3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Aircraft-to-Everything)服务的支持。 3GPP TS 23.256 技术规范: 【免费】3GPPTS23.256技术报告-无人机系…

Linux系统之快速部署小游戏合集网站(二)

Linux系统之快速部署小游戏合集网站(二) 一、项目介绍1.1 项目简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查系统内核版本3.3 检查软件源四、安装Apache24.1 安装Apache2软件4.2 启动apache2服务4.3 查看apach…

Leetcode3211. 生成不含相邻零的二进制字符串

Every day a Leetcode 题目来源&#xff1a;3211. 生成不含相邻零的二进制字符串 解法1&#xff1a;回溯 可以使用回溯得到所有长度为 n 的有效字符串。 字符串的每个位置都需要填入 0 或 1。对于 0≤i<n&#xff0c;如果 i0 或字符串的下标 i−1 处填入 1&#xff0c;则…

python一维表转二维表

一维表转二维表 import pandas as pd # 读取数据 product_df pd.read_csv(rD:\excelFile\practice\物品属性值一维表.csv,encodingutf-8) # print(product_df)# 将一维表转变二维 s pd.Series(list(product_df[属性值]),index[product_df[物品编号],product_df[属性名]]) …

Langchain[6]-LangGraph:异步和流、图可视化、多智能体协作、LCEL代码生成

Langchain[6]-LangGraph:异步和流、图可视化、多智能体协作、LCEL代码生成 1.异步和流 因为任何大模型在推理的时候,都会有一定的时间延迟,这是由大模型的底层架构决定的,所以在很多应用,尤其是对话应用中,使用异步以及流式输出,是大幅提升用户体验的较好方法。 在langG…

产品经理-​统计数据是如何产生的(20)

在互联网当中,监测一个项目的实际情况,在产品当中,往往需要进行数据的监测,看用户的习惯,进而进行对产品进行优化,比如统计产品用户的一些行为,鼠标点击,鼠标hover,停留时长,进入,进出等 产品经理看到的数据统计一般是经历了下面几个阶段 数据埋点&#xff1a;这个阶段产品经理…

Leetcode215. 数组中的第K个最大元素

我们也可以使用堆排序来解决这个问题——建立一个小根堆&#xff0c; 遍历数组将元素入堆&#xff1b;如果当前堆内元素超过 k 了&#xff0c;我们就把堆顶元素去除&#xff0c;即去除当前的最小值。因此我们在元素入堆的过程中&#xff0c;不断淘汰最小值&#xff0c;最终留在…

《从C/C++到Java入门指南》- 7.浮点数运算

浮点数运算 引言 浮点数在计算机中难以进行精确表示&#xff0c;例如&#xff1a;0.1 换算成二进制是一个无限循环的小数&#xff0c;无论是double 还是float&#xff0c;都只能存储一个近似的值。但是0.5却可以进行精确的表示。 误差 浮点数的运算时常伴有误差&#xff1a…

RHCE(免密登录+web服务器)之小试牛刀

1、配置linux客户端免密登录服务端linux主机的root用户 2、配置web服务器&#xff0c;当访问网站www.haha.com时显示&#xff1a;haha 3、配置web服务器&#xff0c;当访问网站www.xixi.com/secret/显示&#xff1a;this is secret 本实验使用RHEL9.3和Rocky linux8操作系统 RH…

AI赋能下的人体摔倒识别技术:深度解析与应用前景

引言 随着人工智能技术的快速发展&#xff0c;AI赋能的解决方案在各行各业中展现出巨大的潜力。特别是在安全监控和健康护理领域&#xff0c;AI技术的应用不仅提高了效率&#xff0c;还极大地提升了安全性。本文将深入探讨思通数科&#xff08;南京&#xff09;信息技术有限公…

ipv6 基础学习(一)

IPv6 为什么要有IPV6&#xff1f; IPv4地址空间有限&#xff1a;IPv4使用32位地址&#xff0c;最多可提供约43亿个地址。随着互联网设备数量的爆炸式增长&#xff0c;这些地址已经几乎耗尽。 IPv6地址空间庞大&#xff1a;IPv6使用128位地址&#xff0c;可以提供大约3.410^3…

人工智能与机器学习原理精解【2】

文章目录 机器学习基础一般化流程回归线性回归一元线性回归基础斜率的公式克莱姆法则&#xff08;Cramers Rule&#xff09;一、克莱姆法则的基本内容二、克莱姆法则的适用条件三、克莱姆法则的优缺点四、总结 导数与极值的问题 julia实现 最小二乘法原理最小二乘法的原理线性回…

视觉巡线小车——STM32+OpenMV

系列文章目录 第一章&#xff1a;视觉巡线小车——STM32OpenMV&#xff08;一&#xff09; 第二章&#xff1a;视觉巡线小车——STM32OpenMV&#xff08;二&#xff09; 第三章&#xff1a;视觉巡线小车——STM32OpenMV&#xff08;三&#xff09; 第四章&#xff1a;视觉巡…

前端打印如何给打印页加上水印

插件使用相关&#xff1a;vue-print-nb 前端打印的一个实现方案-CSDN博客 示例代码&#xff1a; media print {page {size: auto; //页面大小自动&#xff0c;防止打印版不全margin: 15mm; //页面边距的设定}body{background-image: url(/assets/images/login/logo.png);back…