最好对它们进行遮挡剔除,这样相机附近的纹理就会加载到内存中,其他任何东西都不会。 我已经尝试过,但是我的表现真的很差。
这是我位于相机对象上的脚本:
void Update() {
if (playerRB.velocity == Vector2.zero) return;
var coords = Vector2Int.RoundToInt(transform.position / 10);
for (var x = -1; x <= 1; x++) {
for (var y = -1; y <= 1; y++) {
var chunk = _terrainRoot.GetChunk(coords + new Vector2Int(x, y));
_terrainRoot.ActivateChunk(chunk);
_activeChunks.Add(chunk);
}
}
for (var i = _activeChunks.Count - 1; i >= 0; i--) {
if (_activeChunks[i].isVisible) continue;
_terrainRoot.DeactivateChunk(_activeChunks[i]);
_activeChunks.RemoveAt(i);
}
Resources.UnloadUnusedAssets();
}
我明白在更新中进行如此多的操作并不是一个好的决定。也许有人知道更好的选择?
非常感谢您的任何提示。