using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; public class SharingManager : MonoBehaviour { public static SharingManager Instance { get; private set; } private void Awake() { if (Instance != null && Instance != this) { Destroy(this); } else { Instance = this; DontDestroyOnLoad(gameObject); } } public void SnapAndShare() { StartCoroutine( TakeScreenshotAndShare() ); } private IEnumerator TakeScreenshotAndShare() { yield return new WaitForEndOfFrame(); Texture2D ss = new Texture2D( Screen.width, Screen.height, TextureFormat.RGB24, false ); ss.ReadPixels( new Rect( 0, 0, Screen.width, Screen.height ), 0, 0 ); ss.Apply(); string filePath = Path.Combine( Application.temporaryCachePath, "shared img.png" ); File.WriteAllBytes( filePath, ss.EncodeToPNG() ); // To avoid memory leaks Destroy( ss ); new NativeShare().AddFile( filePath ) .SetSubject( "PiPuzzle!" ).SetText( "Come play PiPuzzle!" ).SetUrl( GameConstants.AndroidURL ) .SetCallback( ( result, shareTarget ) => Debug.Log( "Share result: " + result + ", selected app: " + shareTarget ) ) .Share(); // Share on WhatsApp only, if installed (Android only) if( NativeShare.TargetExists( "com.whatsapp" ) ) new NativeShare().AddFile( filePath ).AddTarget( "com.whatsapp" ).Share(); } }