【发布时间】:2019-03-03 20:50:44
【问题描述】:
所以我正在制作一款小型手机游戏,并尽我所能将所有内容构建得最好……但有一些问题。
假设您有一个数组中的武器集合,那么创建一个对集合中武器的引用 (activeWeapon) 并使用它而不是直接在数组中访问该集合会有多糟糕?
例如
public Weapon activeWeapon; // Accessing this, and re-assigning from collection when changing weapon.
public Weapon[] weaponCollection;
我假设“activeWeapon”只是一个地址指针,对吧?所以把它分配给收藏中的另一个武器应该不会给太多垃圾吧?
还是我是个坏人?
【问题讨论】:
-
这只是一个指向对象的指针
-
这并没有错,正如你所说,它只是指向游戏对象。使用单个引用和数组中的引用将给出相同的结果,并且引用将在两个变量中更新
-
引用类型的变量不是“垃圾”,它们只是引用对象的变量。当不再有任何对对象的引用时,对象(类型为 ref 类型)就变成了“垃圾”。在大多数程序中,您通常不需要过多考虑垃圾和 GC 问题。有两个关键时刻需要担心。 1)当你分离出很多很快变成垃圾的对象时(循环中的字符串连接很擅长这个),2)当你无意中持有一个对象的引用比你应该的时间长得多时,防止它变成垃圾.一般来说,事情大多是“正常工作”
-
我明白了,这清楚了很多。感谢您的快速回复 =)
标签: c# unity3d reference garbage-collection