Unity实战案例全解析 之 背包/贩卖/锻造系统(左侧类图实现)

本文主要是介绍Unity实战案例全解析 之 背包/贩卖/锻造系统(左侧类图实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

物品类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Item 
{#region 物品类的基础属性public int ID { get; set; }public string Name { get; set; }public Typeitem typeitem { get; set; }//物品类型public Qualityitem qualityitem { get; set; }public string Desctiption { get; set; }public int Capacity { get; set; }public int Buyprice { get; set; }public int Sellprice { get; set; }public Item() {ID = -1;}#endregionpublic Item(int id,string name,Typeitem t,Qualityitem q,string desctiption,int capacity,int buyprice,int sellprice){this.ID = id;this.Name = name;this.typeitem = t;this.qualityitem = q;this.Desctiption = desctiption;this.Capacity = capacity;this.Buyprice = buyprice;this.Sellprice = sellprice;}
}
/// <summary>
/// 物品类型
/// </summary>
public enum Typeitem
{ Cosumable,//消耗品Equipment,//装备Weapon,//武器Material//材料
}
/// <summary>
/// 品质
/// </summary>
public enum Qualityitem
{ Common,Uncommon,Rare,Epic,Legendary,Artifact
}

 其子类:

装备

using System.Collections;
using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using static UnityEditor.Experimental.GraphView.Port;public class Equipment : Item
{//力量public int Strength { get; set; }/// <summary>/// 智力/// </summary>public int Intellect { get; set; }/// <summary>/// /敏捷/// </summary>public int Agility { get; set; }/// <summary>/// 体力/// </summary>public int Stamina { get; set; }public Equipment(int id, string name, Typeitem t, Qualityitem q, string desctiption, int capacity, int buyprice, int sellprice,int strength,int intellect, int agility,int stamina): base(id, name, t, q, desctiption, capacity, buyprice, sellprice){ this.Strength = strength;this.Intellect = intellect;this.Agility = agility;this.Stamina = stamina;}
}public enum equipType
{ head,neck,chest,//胸部ring,//戒指leg,//腿bracer,//护腕boots,//靴子shuoulder,//肩膀belt,//腰带offHand//副手
}

材质

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Material : Item
{}

武器

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Weapon : Item
{public float Damage { get; set; }public weaponType weaponType;public Weapon(int id, string name, Typeitem t, Qualityitem q, string desctiption, int capacity, int buyprice, int sellprice, float damnage, weaponType w) :base(id, name, t, q, desctiption, capacity, buyprice, sellprice){this.Damage = damnage;this.weaponType = w;}
}
public enum weaponType
{ offHand,mainHand,
}

消耗品

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Consumable : Item
{public float  Hp { get; set; }public float Mp { get; set; }public Consumable(int id, string name, Typeitem t, Qualityitem q, string desctiption, int capacity, int buyprice, int sellprice,float hp,float mp) : base(id,name,  t,  q,  desctiption,  capacity,  buyprice,  sellprice){ this.Hp = hp;this.Mp = mp;    }
}

这篇关于Unity实战案例全解析 之 背包/贩卖/锻造系统(左侧类图实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125393

相关文章

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序