Unity中调用手机中的粘贴功能
生活随笔
收集整理的這篇文章主要介紹了
Unity中调用手机中的粘贴功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近有個小需求,就是點擊一個按鈕,然后復制整個文本中的內容..然后根據網上大神們的教程找到了思路..
https://blog.csdn.net/u011416077/article/details/51513935?
https://www.cnblogs.com/xiaozefeng/p/Unity_Android_IOS.html
謝謝兩位大神~
老規矩,新建一個Canvas,并創建一個Button,一個Text,Text里面的內容自己書寫~?創建一個腳本命名為 : CopyManager
源碼如下:
using?System.Collections;using?System.Collections.Generic;
using?UnityEngine;
using?UnityEngine.UI;
using?System.Runtime.InteropServices;
public?class?CopyManager?:?MonoBehaviour
{
//按鈕
Button?btn;
Text?text;
void?Start?()
{
//初始化
btn?=?transform.Find?("Button").GetComponent?<Button>?();
text?=?transform.Find?("Text").GetComponent?<Text>?();
btn.onClick.RemoveAllListeners?();
//點擊事件
btn.onClick.AddListener?(delegate?{
//ios調用
#if????UNITY_IPHONE
//點擊按鈕開始復制
CopyForIOS?(text.text);
//安卓調用
#elif?UNITY_ANDROID
AndroidJavaClass?jc?=?new?AndroidJavaClass?("com.unity3d.player.UnityPlayer");
AndroidJavaObject?jo?=?jc.GetStatic<AndroidJavaObject>?("currentActivity");
if?(jo?==?null)?{
return;
}
jo.Call?("CopyTextToClipboard",?jo,?text.text);
Debug.Log?("text?=?"?+?text.text);
#endif
});
}
//調用Xcode中的方法
[DllImport?("__Internal")]
public?static?extern?void?CopyForIOS?(string?text);
}
IOS:
接下來就是打包了,注意自己的包名的命名格式...
打開Xcode,新建一個.mm文件命名為?Clipboard.mm,源碼如下
// // Clipboard.m // Unity-iPhone // // @interface Clipboard :NSObject extern "C" {void CopyForIOS(const char *textList); } @end@implementation Clipboard//將文本復制到IOS剪貼板 -(void) Objc_CopyForIOS:(NSString*) text {UIPasteboard *pastedBoard = [UIPasteboard generalPasteboard];pastedBoard.string = text; } @end extern "C"{static Clipboard *iosClipboard;void CopyForIOS(const char *textList){NSString *text = [NSString stringWithUTF8String: textList] ;if(iosClipboard == NULL){iosClipboard = [[Clipboard alloc] init];}[iosClipboard Objc_CopyForIOS:text];} }將該文件放入到Unity中的 Plugins->iOS目錄下在進行編譯一下
這個時候就可以打包出來進行測試啦~
?
Android:
我使用的是Android Studio工具..所以操作起來很方便..
只需要在? UnityPlayerActivity 中添加如下代碼:
public static ClipboardManager clipboard = null;//Unity中調用的方法public void CopyTextToClipboard(final Context activity,final String str) throws Exception {runOnUiThread(new Runnable() {@Overridepublic void run() {ClipboardManager clipboardManager = (ClipboardManager)activity.getSystemService(Activity.CLIPBOARD_SERVICE);ClipData text = ClipData.newPlainText("data", str);clipboardManager.setPrimaryClip(text);}});}這個時候..打包出來即可~~~
轉載于:https://www.cnblogs.com/bw1219/p/9360553.html
總結
以上是生活随笔為你收集整理的Unity中调用手机中的粘贴功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows安装两个版本JDK
- 下一篇: MySQL入门篇(一)之MySQL部署