Textur2D
- это объект Unity, что означает, что он будет сохраняться за пределами сценария (он находится в сцене). Либо используйте шаблон синглтона, так что вам нужен только один текстурный блок в памяти, или вам нужно Destroy
it:
//Save image to file
System.IO.File.WriteAllBytes(filename + "_scene.png", imageBytes);
// Destroy Textur2D Object
Destroy(screenImage);
}
Лично я бы порекомендовал шаблон синглтона:
// Create texture as class-level field, outside of function
Texture2D screenImage = new Texture2D(Screen.width, Screen.height);
IEnumerator takePhoto(string filename) { yield return new WaitForEndOfFrame();
// Debug.Log(gameObject.name + " Save Color Photo");
//Get Image from screen
screenImage.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
screenImage.Apply();