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 InviteFriends(string InviteURL) { new NativeShare() .SetSubject("Join me in PiPuzzle!") .SetText("I'm playing PiPuzzle and it's super fun! Come join me and see how far you can go.") .SetUrl(InviteURL) .SetCallback((result, shareTarget) => Debug.Log("Invite result: " + result + ", selected app: " + shareTarget)) .Share(); } 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(); } }