Unity3d 通用库存单位

Unity3d 通用库存单位,unity3d,unityscript,Unity3d,Unityscript,编辑:我一直在考虑如何给出一个tl;我是博士。这个怎么样:Inspector正在查找BaseObject。如何让检查器允许我分配一个派生自BaseObject的DerivedObject 我想做一个通用的库存系统。我已经试用过Brackey的库存系统,但我想在它的基础上进行扩展,使其包含的东西不仅仅是一个“项目”。我希望有一个“键”或“武器”类,继承物品作为基础,而Brackey的清单有许多布尔字段,确定它是否能够装备或是否是武器。我可以做到这一点,我的问题是如何在编辑器时创建这些项,而我的脚本

编辑:我一直在考虑如何给出一个tl;我是博士。这个怎么样:Inspector正在查找BaseObject。如何让检查器允许我分配一个派生自BaseObject的DerivedObject

我想做一个通用的库存系统。我已经试用过Brackey的库存系统,但我想在它的基础上进行扩展,使其包含的东西不仅仅是一个“项目”。我希望有一个“键”或“武器”类,继承物品作为基础,而Brackey的清单有许多布尔字段,确定它是否能够装备或是否是武器。我可以做到这一点,我的问题是如何在编辑器时创建这些项,而我的脚本需要基类型:Item

从零开始,我有一个项(字段:stringitemname)和一个Key:Item(新字段:stringauthorityvel)

我有一个拾取脚本,作为游戏对象的组件应用。在这个脚本中,我可以给它一个Item属性,当游戏对象与之交互时,我可以调用pick.GetItem()方法。然后获取Item属性并将其添加到我的库存对象中

如何使Item属性保存对从Item继承的键对象的引用?拾取脚本的检查器将仅显示项属性的“ItemName”,而不是关键项的AuthorityLevel字段


我有点迷路了。我发现在运行时很容易实现这一点,因为创建项目的脚本知道要创建什么特定项目,并且可以将其分配给新创建的GameObject的拾取脚本。但在编辑时,很难告诉检查器我希望拾取脚本保存对键或从项继承的任何其他对象的引用。

从基类B派生类D

class D : public B
{
//staff or nothing
}

我知道这已经快7年了,但对于任何搜索到这一点的人来说:

我不认为这里有任何实际问题,
列表可以存储对从Item继承的任何类的引用

因此,拥有类类型的数组或列表允许引用派生类的任何对象

例如:

public class Item
{
    //some attributes
}

只能储存在

List<Item> items = new List<Item>();
List items=newlist();

你在回答什么问题?嘿,Java。我知道如何从另一个类派生一个类。在我上面的例子中:(Edit,因为这里显然不能按enter。)class key:item{}问题是当我有一个组件需要item类型的对象时。我想给它传递一个键对象,这是一个项,但在编辑器时我不能这样做。这很容易在运行时完成。您可以发布一些代码,或者您遇到问题的代码吗?您找到问题的答案了吗?:)我也在找同样的东西。嘿,罗伊。我还没有找到解决办法。我正在做的项目只是我想玩弄一些想法,所以我把它放在backburner上做一些简单的事情。然而,我最近确实看到了一些我认为可以解决这个问题的东西。我把它放在脑后,想着以后什么时候我会试试。也许你会发现它同样有趣:谢谢你的链接,这是一个巧合,因为在你发表评论之前我刚刚发现了它!它看起来非常漂亮,作者似乎也回答了一些问题
List<Item> items = new List<Item>();