出自转载
方法1:
游戏中里开发分享功能时用到两个小功能:1.复制一个链接到剪切板供在其他应用粘贴分享使用,2.保存一张二维码图像到相册供发送给其他应用用于分享。但是在unity中无法完成,需要分别开发相应的插件。
Android 部分:
使用android studio生成jar包(注意:其中com.ztgame.ztmyseabed 为unity中playersettings里面设置的游戏bundle id),ClipboardTools.java 代码如下
package com.XXXXXXX.base; //建立工程时设置的包名
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipDescription;
import android.content.ClipboardManager;
import android.content.Context;
public class ClipboardTools {
public static ClipboardManager clipboard = null;
// 向剪贴板中添加文本
public void copyTextToClipboard(final Context activity, final String str) throws Exception {
clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText("data", str);
clipboard.setPrimaryClip(textCd);
}
// 从剪贴板中获取文本
public String getTextFromClipboard() {
if (clipboard != null && clipboard.hasPrimaryClip()
&& clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
ClipData cdText = clipboard.getPrimaryClip();
ClipData.Item item = cdText.getItemAt(0);
return item.getText().toString();
}
return "null";
}
}
Unity部分:
public void CopyTextToClipboard(string code)
{
#if UNITY_EDITOR
#elif UNITY_IPHONE
#elif UNITY_ANDROID
AndroidJavaClass playerCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = playerCls.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject ShareManager = new AndroidJavaObject("com.XXXXXXX.base.ClipboardTools");
ShareManager.Call("copyTextToClipboard", activity, code);
#endif
}
这边只是引用文章的andriod部分,需要其他内容的可以去查看原文章
关于如何打包aar给Untiy使用的可以参考我之前的
《SDK接入Unity分享总结》
方法2:
Unity的开发中,有时候我们会有需求,希望将Unity程序中的字符串保存到系统的剪贴板中,可以在其它的程序中粘贴。不过我们在搜索引擎中搜索到的方法,都是需要去写Obj-c或者Java原生代码的解决方案。
其实Unity本身有个接口可以方便的实现该功能。
UnityEngine.GUIUtility.systemCopyBuffer = "要复制的内容";