XNA: Какой смысл Unload ()? - PullRequest
       5

XNA: Какой смысл Unload ()?

6 голосов
/ 08 апреля 2010

Игры XNA имеют метод Unload(), при котором контент должен быть выгружен. Но какой в ​​этом смысл? Если весь контент выгружается, то игра должна быть закрыта, и в этом случае все равно будет мусор, верно?

Ответы [ 3 ]

6 голосов
/ 08 апреля 2010

Насколько я понимаю, это бесполезно для любого стандартного использования, поскольку, как вы говорите, сборщик мусора имеет дело с вещами для вас.

Однако полезно иметь событие, вызываемое, когда ваша игравыход для многих вещей.Например, вы можете отправить сообщение всем клиентам в многопользовательской игре, сообщая им, что вы выходите, а затем вы можете позволить сборщику мусора разорвать ваши сетевые подключения.

2 голосов
/ 08 апреля 2010

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

Мое лучшее предположение заключается в том, что это позволит вам вложить Game объекты в ваш проект и даст вам возможность очистить их позже. Это позволит лучше использовать ваш код. Надеемся, что MPV XNA или кто-то из команды XNA найдут это и предоставят больше информации.

1 голос
/ 30 июля 2010

Иногда требуется выгрузка, особенно при работе с библиотеками, которые не выгружаются через сборщик мусора. Одним из примеров является XACT. Я помню, как уничтожил объект, ответственный за музыку XACT, в событии Unload в одном конкретном случае, когда объект не был уничтожен GC ... Но я забыл реальный сценарий ...

Более важно, однако, метод UnloadContent для классов GameComponent вместо классов Game. Как правило, объекты GameComponent и DrawableGameComponent могут использовать несколько ресурсов. Когда объект уничтожен, вы должны убедиться, что все ресурсы, связанные с объектом, уничтожены, освобождены или иногда переведены в состояние ожидания.

Я бы предложил вам оставить это сейчас. По мере продвижения вперед в разработке XNA и для крупномасштабных проектов вам может понадобиться использовать метод Unload и понять, в каких случаях вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...