XNA:Unload()有什么意义?

XNA游戏有一个Unload()方法,其中内容应该被卸载。 但这有什么意义呢? 如果正在卸载所有内容,那么游戏必须退出,在这种情况下,一切都将被垃圾收集,对吧?

据我所知,它对任何标准用途都没有用,因为正如你所说垃圾收集器为你处理的事情。

但是,当您的游戏退出许多内容时,调用一个事件是很有用的。 例如,您可以向多人游戏中的所有客户端发送消息,告诉他们您正在退出,然后您可以让垃圾收集器终止您的网络连接。

自己清理后总是很有礼貌……否则人们会停止让你玩玩具。

我最好的猜测是它允许你将Game对象嵌入到你的项目中,并为你提供一种方法来清理它们。 这样可以更好地重用代码。 希望XNA MPV或XNA团队的人员能够找到并提供更多见解。

有时需要卸载,尤其是在处理未通过垃圾收集器卸载的库时。 一个例子是XACT。 我记得在一个特殊的情况下,在一个特殊的情况下,不得在GC中销毁负责XACT音乐的对象,但是我忘记了实际场景……

但更重要的是,GameComponent类的UnloadContent方法而不是Game类。 通常,GameComponent和DrawableGameComponent对象可以使用多个资源。 当对象被销毁时,您必须确保与该对象相关的所有资源都被销毁,释放或有时处于挂起状态。

我建议你暂时离开。 随着XNA开发的进展以及更大规模的项目,您可能需要使用Unload方法,并了解您需要的特定情况。