public void Record()
{
if (previewGifRoutine != null) StopCoroutine(previewGifRoutine);
if (captureGifRoutine != null) StopCoroutine(captureGifRoutine);
screenshots.Clear();
captureGifRoutine = StartCoroutine(IERecord());
}
private IEnumerator IERecord()
{
IsRecording = true;
//Take a screenshot for every needed frame
for (int i = 0; i < gifDuration * framesPerSecond; i++)
{
TakeScreenShot();
//CurrentFrame = screenshots[i];
//FrameIndex = i;
yield return new WaitForSecondsRealtime(1 / framesPerSecond);
yield return null;
}
IsRecording = false;
PreviewGif();
yield return null;
}
private void PreviewGif()
{
previewGifRoutine = StartCoroutine(IEPreviewGif());
}
private IEnumerator IEPreviewGif()
{
for (int i = 0; i < screenshots.Count; i++)
{
CurrentFrame = screenshots[i];
FrameIndex = i;
replayMaterial.mainTexture = CurrentFrame;
//yield return new WaitForSecondsRealtime((1 / framesPerSecond) / PlaybackSpeed);
yield return new WaitForSeconds(1 / framesPerSecond);
yield return null;
}
previewGifRoutine = StartCoroutine(IEPreviewGif());
yield return null;
}