插件地址:点此下载插件包【Unitypackage格式】
配置文件中需要添加读写sdcard的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
using UnityEngine;
using System.Collections;
using System.IO;
public class Share : MonoBehaviour
{
public static string imagePath;
static AndroidJavaClass sharePluginClass;
static AndroidJavaClass unityPlayer;
static AndroidJavaObject currActivity;
private static Share mInstance;
public static Share instance {
get{ return mInstance;}
}
void Awake ()
{
mInstance = this;
}
void Start ()
{
imagePath = Application.persistentDataPath + "/HKeyGame.png";
sharePluginClass = new AndroidJavaClass ("com.ari.tool.UnityAndroidTool");
if (sharePluginClass == null) {
Debug.Log ("sharePluginClass is null");
} else {
Debug.Log ("sharePluginClass is not null");
}
unityPlayer = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
currActivity = unityPlayer.GetStatic<AndroidJavaObject> ("currentActivity");
}
public void CallShare (string handline, string subject, string text, bool image)
{
Debug.Log ("share call start : " + imagePath);
if (image) {
sharePluginClass.CallStatic ("share", new object[] {
handline,
subject,
text,
imagePath
});
} else {
sharePluginClass.CallStatic ("share", new object[] {
handline,
subject,
text,
""
});
}
Debug.Log ("share call end");
}
public void ScreenShot ()
{
StartCoroutine (GetCapture ());
}
IEnumerator GetCapture ()
{
yield return new WaitForEndOfFrame ();
int width = Screen.width;
int height = Screen.height;
Texture2D tex = new Texture2D (width, height, TextureFormat.RGB24, false);
tex.ReadPixels (new Rect (0, 0, width, height), 0, 0, true);
byte[] imagebytes = tex.EncodeToPNG ();//转化为png图
tex.Compress (false);//对屏幕缓存进行压缩
// image.mainTexture = tex;//对屏幕缓存进行显示(缩略图)
File.WriteAllBytes (Application.persistentDataPath + "/HKeyGame.png", imagebytes);//存储png图
Debug.Log (Application.persistentDataPath);
}
}原文地址:http://blog.csdn.net/sinat_20559947/article/details/46533453