Unity / C #, Создание ссылок на существующие экземпляры классов (GC) - PullRequest
0 голосов
/ 03 марта 2019

Так что я делаю небольшую мобильную игру и пытаюсь структурировать все как можно лучше ... но есть вопросы.

Предположим, у вас есть набор оружия в массиве, насколько плохо это будетбыть созданием ссылки (activeWeapon) на оружие в коллекции и использовать его вместо доступа к коллекции непосредственно в массиве?

Например

public Weapon activeWeapon; // Accessing this, and re-assigning from collection when changing weapon.
public Weapon[] weaponCollection;

Я предполагаю "activeWeapon"это просто указатель адреса правильно?Так что назначение его другому оружию в коллекции не должно давать слишком много мусора?

Или я плохой человек?

1 Ответ

0 голосов
/ 04 марта 2019

Если вы определили Weapon как класс в C # (т.е. не в Struct), то все в порядке, как вы описали.activeWeapon - это просто ссылка, так что вы можете изменить ее столько раз, сколько захотите, и это не вызовет никакого дополнительного мусора, поскольку у вас все равно останется один экземпляр этого Weapon, даже если вы ссылаетесь на него дважды из двух разных мест..

Подробнее о ссылочных типах можно прочитать здесь: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types

...