unity3d 可以接受int或float类型的C#类构造函数

mm9b1k5b  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(158)

我想有一个类统计能够采取在(int value)(float value)
原因是我想创建一个Dictionary(string, Stat),所以我不能创建两个类。我在类中还有升级和重置属性的函数,所以我不能创建多个构造函数。
如果有帮助的话,我可以在我的代码中进行编辑,但是我相信我已经很好地描述了这个问题。我使用的是Unity,所以我被锁定在C#8.0版本上
编辑:如果这看起来像是一个愚蠢的问题,我道歉。我完全是自学成才,所以我不知道一些东西。而且我做了很多搜索之前,张贴这个问题,但没有解决方案,我可以找到。
编辑(2):我的问题不清楚。我的最终目标是这样的:

Dictionary stats = new Dictionary(string, Stat)
{
    {"health", Stat(int 30)}
    {"attack", Stat(float 2.5)}
    ...
}

一个统计信息列表,为了提高性能,可以是int或float。

bvjveswy

bvjveswy1#

答案很简单。感谢@UnholySheep和我讨论这个问题。这个答案是问题上面下面的评论的摘要(保存在这里,以防它们被删除)。
邪恶的绵羊:
您可以创建Stat和interface或(抽象)基类并拥有从其继承两个类。
对性能的担忧极有可能不适用,再次来自羊先生:
您需要一些非常极端的数字,浮点性能才能成为真实的的瓶颈
在我做过的所有游戏中,统计系统都不是瓶颈。关于float与int性能的讨论只在必须执行大量计算的系统中有意义。
对于类设计与字典,一个带有嵌入字段的简单类就足够了:
我们也从来没有使用Dictionary来存储统计信息,只是使用一个类来存储成员字段的统计信息就更有意义了,因为统计信息必须在整个代码中定义才有用

相关问题