Я создаю игру в Unity для Android и делаю снимки экрана во время выполнения и отображаю их на более позднем этапе той же сцены. Однако, когда я пытаюсь это сделать, изображения кажутся устаревшими снимками экрана (из предыдущего сеанса), и они будут обновляться только во время выполнения, если я обновлю папку ресурсов вручную, чего я не могу сделать при работе на Android.
Я пробовал другие способы загрузки изображений, такие как WWW и чтения из ByteArray, которые также не работали. Я также использовал AssetDatabase.Refresh (), который работал, но не доступен для использования на Android.
Вот мой код скриншота (работает как требуется):
IEnumerator CaptureIt()
{
string fileName = "/Screenshot" + screenshotCounter + ".png";
string pathToSave = "Assets/Resources/Screenshots/" + fileName;
ScreenCapture.CaptureScreenshot(pathToSave);
screenshotCounter++;
yield return new WaitForEndOfFrame();
}
Вот мой код для отображения изображения в виде спрайта:
public void loadImage(int roundNum)
{
loadedSprite = Resources.Load<Sprite>("Screenshots/Screenshot" + roundNum);
imageDisplay.sprite = loadedSprite;
}
Как я уже сказал, я ожидаю, что это загрузит последний экземпляр снятого скриншота, но это произойдет, только если папка ресурсов была обновлена.