是否存在C#类似列表的数据结构,它不与Unity 3.5 / 4 .NET单色GC交互?
我知道C#结构在Unity中的行为类似于范围变量,并且不受GC控制。我想知道如果可能IEnumerable
兼容类似列表的结构,是否有任何免费的GC - 能否过滤,添加元素并从中删除?
答案 0 :(得分:3)
使用.NET时,任何“可增长”的对象都将由GC控制,因为它需要动态分配。
如果你的大小总是很小,你可能会创建一个“集合”类型来包装来自stackalloc的指针来模拟这个,但它不会像普通列表那样。
答案 1 :(得分:2)
防止大量分配/解除分配并因此导致GC运行的一种方法是使用池。这是您分配一定数量的对象,然后分配它们的地方。
当您需要一个新对象时,您只需从池中取出一个未使用的对象。您不删除对象,只需将它们标记为未使用。
另见帖子:Should I use Pools for particles if i forced to re-init every particle every time i create them