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.
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
2 weeks ago
|
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();
|
||
|
}
|
||
|
}
|