private IEnumerator CreateScreenshot()
        {
            yield return(new WaitForEndOfFrame());

            Texture2D screenTexture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true);

            screenTexture.ReadPixels(new Rect(0f, 0f, Screen.width, Screen.height), 0, 0);
            screenTexture.Apply();

            string filename    = System.DateTime.Now.ToString("yyyy-MM-dd-HHmmss");
            string pathToImage = Path.Combine(Application.persistentDataPath, filename + ".png");

            byte[] dataToSave = screenTexture.EncodeToPNG();
            File.WriteAllBytes(pathToImage, dataToSave);

            #if UNITY_ANDROID
            if (OnAndroidScreenshotSaved != null)
            {
                OnAndroidScreenshotSaved(pathToImage);
            }
            #endif

            #if UNITY_IOS
            StartCoroutine(IOSPhotoGalleryHandler.SaveExisting(pathToImage));
            #endif
        }
        public void ShareTexture2D(string shareText, Texture2D texture2D)
        {
            tmpCurrentShareText = shareText;

            string filename    = System.DateTime.Now.ToString("yyyy-MM-dd-HHmmss");
            string pathToImage = Path.Combine(Application.persistentDataPath, filename + ".png");

            byte[] dataToSave = texture2D.EncodeToPNG();
            File.WriteAllBytes(pathToImage, dataToSave);

            #if UNITY_ANDROID
            if (OnAndroidScreenshotSaved != null)
            {
                OnAndroidScreenshotSaved(pathToImage);
            }
            #endif

            #if UNITY_IOS
            StartCoroutine(IOSPhotoGalleryHandler.SaveExisting(pathToImage));
            #endif
        }