2016-08-24 56 views
0

我想要一个简单的Vector2类/结构浮点x和y和几个方法。 我仍然试图把我的头围绕差异,但不能完全得到它 我知道它通常与结构完成,但我想更新每个帧的Vector2大2D阵列,这将使一个类更好比结构? 首先发布在这里,并提前感谢所有回复!Vector2:类或结构?

+0

我投票**结构** – MrClan

+1

我不明白的是,你给你的问题的Unity3D标签。在引擎中已经有一个Vector2/3/4结构,所以不需要创建自己的结构。 – Everts

+0

我认为不断的更新使得一个类比一个结构更好,所以我应该做一个新的Vector2类 – Hadi

回答

6

会,使一类比结构

此操作更好,也不是专门的任何更好或更坏;然而,拥有很多长寿命的物体意味着你可能会遇到GC故障。它是“大型二维数组”的事实意味着您也可以通过使用结构体来节省大量开销(对象头)。

+0

亲爱的主席先生! **你也可以通过使用结构来潜在地节省大量的开销(对象头文件)**这是太多的信息供我消化。你能再解释一下吗? –

+0

对我来说消化太多了,但经过一些Google搜索之后,我有点想法。 所以如果我正确地理解它,是垃圾收集一个比收集原始类型更昂贵的结构?这会让2个浮点数组更容易吗?但是这不会使开销增加一倍吗?我应该支持哪一个?他们还说,除非它是不可变的,否则不要使用结构。是不是更新被认为是“可变性”的每一帧?感谢回复 – Hadi

+1

@UmairM'class'的每个实例都是一个**对象**。一个对象在堆上由*对象头*加上实际数据组成的空间分配。值类型被分配*作为其他东西的一部分*,并且没有对象头 - 类型通过拥有它的东西隐含。在数组的情况下,类型被数组*的类型隐含*。当你有数千或数百万的小数据时,这种差异就会加起来。 –