我应该什么时候加载和释放资源
When should I load and dispose resources
我已经阅读了很多关于这个问题的文章,但我想就我的情况应该如何处理它寻求一些建议。
我有一个包含大约 8 个不同屏幕的用户界面,我不打算在屏幕之间切换时使用 loading/disposing 资源,因为这会导致非常糟糕的用户体验。
但是,我还有 12 个小游戏,您可以从我的 UI 开始,这让我想到了我的问题;什么时候加载和销毁资产?
据我所知,我有两个选择:
- 选项 A:我在游戏开始时加载每一个资产,但这似乎是一个糟糕的解决方案。
- 选项B:我只在游戏启动时加载UI个资产,然后在每个小游戏启动时加载资产,并在完成后处理它们。
如果我选择选项 B,我是否应该在迷你游戏开始之前处理所有 UI 资产?这意味着我必须在迷你游戏结束后重新加载它们(每个迷你游戏有 50 秒长)。这似乎对用户不友好,但是如果我在开始小游戏时不处理 UI 资产(小游戏结束后用户被重定向到 UI ),会不会导致内存泄漏?
真正的问题是你有多少资产,它们有多大(它们有什么分辨率)。
最好的想法似乎是将有关图形的所有内容都保存在一个很棒的 TextureAtlas 中 - 但是您必须记住,创建大于 2048x2048 像素的图集并不是一个好主意 - 并在开始(启动后制作一些加载屏幕)然后在应用程序生命周期结束时卸载。
当然你应该使用 AssetManager 实例,我想你已经用过了。
我认为同样的情况是所有资产都在两个、三个地图集上。我也会这样对待音乐——不幸的是没有音乐图集:)
如果资产量真的很大,一开始就加载不了,恐怕最好的办法是在小游戏开始前直接加载,结束后直接处理——这似乎是最有效的方式来管理你的记忆。我猜用户也会准备好在开始和结束小游戏时看到一些加载屏幕。
您也可以尝试实现一些 lazy 加载资产的技术,但这实际上取决于您拥有多少资产以及您的应用程序的特点是什么
我已经阅读了很多关于这个问题的文章,但我想就我的情况应该如何处理它寻求一些建议。
我有一个包含大约 8 个不同屏幕的用户界面,我不打算在屏幕之间切换时使用 loading/disposing 资源,因为这会导致非常糟糕的用户体验。
但是,我还有 12 个小游戏,您可以从我的 UI 开始,这让我想到了我的问题;什么时候加载和销毁资产?
据我所知,我有两个选择:
- 选项 A:我在游戏开始时加载每一个资产,但这似乎是一个糟糕的解决方案。
- 选项B:我只在游戏启动时加载UI个资产,然后在每个小游戏启动时加载资产,并在完成后处理它们。
如果我选择选项 B,我是否应该在迷你游戏开始之前处理所有 UI 资产?这意味着我必须在迷你游戏结束后重新加载它们(每个迷你游戏有 50 秒长)。这似乎对用户不友好,但是如果我在开始小游戏时不处理 UI 资产(小游戏结束后用户被重定向到 UI ),会不会导致内存泄漏?
真正的问题是你有多少资产,它们有多大(它们有什么分辨率)。
最好的想法似乎是将有关图形的所有内容都保存在一个很棒的 TextureAtlas 中 - 但是您必须记住,创建大于 2048x2048 像素的图集并不是一个好主意 - 并在开始(启动后制作一些加载屏幕)然后在应用程序生命周期结束时卸载。
当然你应该使用 AssetManager 实例,我想你已经用过了。
我认为同样的情况是所有资产都在两个、三个地图集上。我也会这样对待音乐——不幸的是没有音乐图集:)
如果资产量真的很大,一开始就加载不了,恐怕最好的办法是在小游戏开始前直接加载,结束后直接处理——这似乎是最有效的方式来管理你的记忆。我猜用户也会准备好在开始和结束小游戏时看到一些加载屏幕。
您也可以尝试实现一些 lazy 加载资产的技术,但这实际上取决于您拥有多少资产以及您的应用程序的特点是什么