You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PlumberUltimateAds/Assets/Scripts/Dev/SharingManager.cs

51 lines
1.5 KiB
C#

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();
}
}