WebTexture is black on device but not in editor
I'm attempting to take a screen capture in my app and save it as a PNG. When I run the app from the Unity editor all images are saved exactly how I expect. However, when I build and run on an ios device the image gets saved as black. I've tried WaitForSeconds, WaitForEndOfFrame, and yield returning the byte array. Below is the relevant code. I really appreciate any help.
void Start() { PostitionGameObjects (); Debug.Log ("background value " + background); WebCamDevice[] devices = WebCamTexture.devices;
if (devices.Length == 0) {
Debug.Log ("No Devices Found");
camAvailable = false;
return;
}
for (var i = 0; i < devices.Length; i++) {
if (!devices [i].isFrontFacing) {
backCam = new WebCamTexture (devices[i].name, Screen.width, Screen.height);
}
}
if (backCam == null) {
Debug.Log ("No back facing camera available");
return;
}
Debug.Log("in start" + backCam);
backCam.Play ();
//this will throw null
background.texture = backCam;
camAvailable = true;
}
IEnumerator WaitForSecondsDo(){
Debug.Log("in switch" + backCam);
Texture2D photo = new Texture2D(backCam.width, backCam.height);
photo.SetPixels(backCam.GetPixels());
photo.Apply();
//Encode to a PNG
image = photo.EncodeToPNG();
Debug.Log (image);
yield return image;
}
The function is invoked like so StartCoroutine(WaitForSecondsDo());
Your answer
Follow this Question
Related Questions
Black screen capturing screenshot 0 Answers
Wrong Coloring (Sometimes) when capturing "Screen"-shot 1 Answer
How to display screenshots on iOS,Display Screenshots on iOS 0 Answers
How to ReadPixels from square area right in the middle of the screen? 1 Answer
texture rendering issue on iOS using OpenGL ES in Unity project 0 Answers