Unity截圖後分享朋友圈或則好友
阿新 • • 發佈:2018-11-09
文章轉自 https://blog.csdn.net/u010019717/article/details/70037832
1、截圖後分享手機上有的 社交平臺,不需要sdk
2、簡單粗暴上程式碼
using UnityEngine; using System.Collections; using System.IO; public class NativeShareScript : MonoBehaviour { public GameObject CanvasShareObj; private bool isProcessing = false; private bool isFocus = false; /// <summary> /// Button按鈕事件 /// </summary> public void ShareBtnPress() { if (!isProcessing) { CanvasShareObj.SetActive(true); StartCoroutine(ShareScreenshot()); } } IEnumerator ShareScreenshot() { isProcessing = true; yield return new WaitForEndOfFrame(); ScreenCapture.CaptureScreenshot("screenshot.png", 2); string destination = Path.Combine(Application.persistentDataPath, "screenshot.png"); yield return new WaitForSeconds(0.3f); //WaitForSecondsRealtime(0.3f); if (!Application.isEditor) { AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + destination); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "Can you beat my score?"); intentObject.Call<AndroidJavaObject>("setType", "image/jpeg"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject chooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Share your new score"); currentActivity.Call("startActivity", chooser); yield return new WaitForSeconds(1f); //WaitForSecondsRealtime(1f); } yield return new WaitUntil(() => isFocus); CanvasShareObj.SetActive(false); isProcessing = false; } private void OnApplicationFocus(bool focus) { isFocus = focus; } }
3、場景中只需要添加個UI button註冊點選事件就ok了!!!