【发布时间】:2016-02-05 12:48:36
【问题描述】:
我最初在昨天的 Unity 问答论坛上发布了此内容,但目前尚未收到任何回复。所以我想我会在这里碰碰运气。
所以我对 Unity 有点陌生。从 Unity 3 开始我就开始涉足它,但从未真正做出任何建设性或值得一提的事情。在获得计算机科学学位后,我从事 C#、ASP.NET 和 JAVA 程序员的工作已经超过 5 年了。所以我想抛出我确实了解 OOP 的内容。所以在这里告诉我什么是铁的事实。
我的问题是,我想知道创建类层次结构时的标准做法以及它们应该如何扩展或绑定到 MonoBehaviour 类。
这是我在层次结构中的特殊情况:
IPickupable (interface) > Item : Monobehaviour, IPickupable > Weapon : Item, IEquipable (interface) > Sword : Weapon
这就是我现在所拥有的。我将 MonoBehaviour 放在我的类结构的最底层,这样当我创建一个新的 Sword() 对象时,我必须使用 Start()。
我感到困惑的问题无处不在,它指出您不应该在您的类中使用派生自 MonoBehaviour 的构造函数。好吧,当我从我的数据库中创建我的项目字典时,我想创建一堆剑的实例,例如,并将它们存储在一个集合中。这一切都发生在代码中,实际上并没有在屏幕上渲染或在游戏中发生。
构建我的类结构以使所有游戏逻辑都包含在普通类中会更有益吗?然后有一个使用我最顶层逻辑类的顶级类。例如,我上面的例子会变成这样:
SwordObject : Monobehaviour
private Sword sword;
通过这种方式,我将附加到游戏对象的实际脚本仍然可以访问所有剑法和数据成员,但我的类可以随时随地实例化。
我目前正在与恶魔斗争如何解决这个问题,我想我会看看是否有经验丰富的具有 Game Logic 和 Unity 的程序员可以帮助我提供一些最佳实践。我是一名业务逻辑程序员,每天只处理会计问题、API、移动开发和网页设计,所以游戏逻辑对我来说是全新的。提前感谢您的帮助、见解、建议和反馈!
【问题讨论】: