我正在GMS2上开发一款游戏,以减少我的游戏占用的内存,我试图使用动态纹理组。调试时加载纹理页面,我期望只显示当前已加载的纹理组。这就是我第一次暂停游戏,按下“加载纹理”按钮时会发生的情况。

但是,当我第二次暂停游戏,按下按钮,纹理页面的数量会爆炸。即使游戏尚未从这些组中绘制任何内容,所有纹理页面,动态或静态,都会在调试器中加载。

我几乎肯定这些页面并没有因为以下原因而被加载:

  1. 在我第二次暂停游戏时,我仍然在同一房间,紧接着是我第一次暂停游戏。在我暂停游戏之间,这个房间不会绘制任何新的纹理
  2. 当我禁用我的加载屏幕时,某些纹理会暂时出现问题和缺陷。如果我是正确的,这是预期的,因为页面仍然需要解压缩并载入VRAM。然而,如果我在调试器下运行游戏并重现引发这个问题的步骤,缺陷就会消失。 我认为,这意味着页面已经解压缩(并且可能已载入VRAM)即使还不应该。

调试器为什么会那么早地加载所有这些页面,或者更主要地说,为什么要在第二次呢?如果这是调试器的正常行为,那么我又如何可靠地确定在给定时刻哪些动态纹理页面已加载?