如何访问从monobehaviour继承的类

时间:2014-10-08 15:06:37

标签: c# unity3d monodevelop

我的问题比标题复杂一点: 我有一个GUIController类,它控制GUI,我想创建一个游戏内购买菜单。在这个菜单中,我可以选择武器,如果我有足够的钱,我可以买它们。我必须访问他们的数据,如价格,描述或名称。

问题:
- 要访问他们的数据,我必须从类中实例化一个对象(启动函数必须在访问数据之前运行)。
- 主要武器类继承自MonoBehaviour,因此我无法从类中实例化对象。

可能的解决方案:
- 我可以实例化一个包含该类作为脚本组件的游戏对象,然后我可以访问其数据。我认为这不是一个好的解决方案。

问题:
我应该将信息存储在其他地方吗?在本地数据库或什么?我认为在课堂上存储信息是一个好主意,但我不再那么肯定了。

提前感谢您的回答!

1 个答案:

答案 0 :(得分:0)

编辑:鉴于您的类层次结构,静态变量建议显然不起作用。编辑提供另一种可能的解决方案。

您可以为Weapon属性创建一个新类,并为每种武器类型创建它的实例。这些可以从代码,数据库,配置文件等填充。在构造特定Weapon的实例时,您可以为其提供属性对象并复制所有属性的值。这可以使用反射来完成,以节省您为每个属性编写分配。

可以通过多种方式制作和访问武器属性对象。一个建议是拥有一个存储库,可以用来获取对象的引用(如果它们是单例)或返回一个新的。

顺便提一下,这是一个相当广泛的问题,“正确”的答案可能取决于您拥有多少数据以及您打算如何使用它,或者可能是最佳实践问题。因此,它可能更适合programmers.stackexchange.comgamedev.stackexchange.com