我正在与Unity一起使用RPG机制制作Clicker游戏。我需要有关库存(或更确切地说是物料系统)背后逻辑的一些帮助。我的问题是,它需要具有以下功能:
我还需要一个有关如何创建此系统的起点,因为我仍然需要一些有关使用类的信息。
比方说,我创建了一个商品类,并且我的第一个商品名为“ Stick”。我有它的实例,想将此项目添加到lootcrates的下拉列表中。我如何“通过”它?我的基本想法是创建它的实例的副本,但是之后我将无法在不编辑原始实例和副本本身的情况下更改其值。这也指库存本身,当我保存自定义项目实例的副本时,如何保持它们“链接”?
答案 0 :(得分:0)
这可能无法回答您提出的所有问题,但我会尝试为您提供一个起点。您将要为所有库存项目创建一个基类或接口,其中将包含所有项目共享的属性(例如ID):
public class Item
{
public int Id { get; set; }
}
然后,更具体类型的物品将从Item
类继承,也许是一种武器。
我想要一种易于管理和修改物品及其值的方法,即使它们是自定义的(例如,当我更改基本dmg时,某物品做了20基础dmg并且被玩家修改为+10 dmg到30,则玩家物品总共应该进行40 dmg的操作
您的武器类别可能具有基础伤害值,伤害修正值和基于前两个值的计算得出的总伤害值:
public class Weapon : Item
{
public int BaseDamage { get; set; }
public int DamageModifier { get; set; }
public int TotalDamage => BaseDamage + DamageModifier;
}
一件物品需要有一些用于放置贴纸或附件之类的插槽,这些物品本身也是物品。
您可以在此处创建一个接口(甚至将其移至您的基类中-我对您要进行该调用的系统了解不足),该接口将包含Item
个对象的集合目的:
public interface IAttachmentContainer
{
IEnumerable<Item> Attachments { get; set }
}
然后在可以带有附件的任何项目上实现此接口。 至于持久性,您将需要研究某种类型的数据库系统(例如注释中提到的Traendy)。
我希望这足以让您入门。如有任何问题,请告诉我。