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.
81 lines
2.6 KiB
C#
81 lines
2.6 KiB
C#
3 days 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; }
|
||
|
|
||
|
string AndroidURL =
|
||
|
"https://play.google.com/store/apps/details?id=com.rizze.pipuzzle&hl=en-US&ah=gfIMAf3ZQA42PzRKpRnkmyC0Sek&pli=1";
|
||
|
|
||
|
string IosURL = "abcd";
|
||
|
|
||
|
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 CopyGameURL()
|
||
|
{
|
||
|
#if UNITY_ANDROID
|
||
|
GUIUtility.systemCopyBuffer = AndroidURL;
|
||
|
Debug.Log("Android platform detected. Play Store link copied to clipboard.");
|
||
|
InviteFriends(AndroidURL);
|
||
|
#elif UNITY_IOS
|
||
|
GUIUtility.systemCopyBuffer = IosURL;
|
||
|
SharingManager.Instance.InviteFriends(IosURL);
|
||
|
Debug.Log("iOS platform detected. App Store link copied to clipboard.");
|
||
|
#else
|
||
|
Debug.Log("This platform is not supported for copying the store link.");
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
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(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();
|
||
|
}
|
||
|
}
|