日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

unity Android 剪贴板,Unity移动端的复制要这么写示例代码

發(fā)布時間:2025/4/16 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity Android 剪贴板,Unity移动端的复制要这么写示例代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

Unity官網(wǎng)提供了詳盡的文檔和豐富的教學(xué)視頻,昨天跟著視頻做了一個簡單的3d游戲“roll-a-ball”。游戲涉及了許多Unity的基本知識,用來入門很不錯。

本文主要給大家了關(guān)于Unity移動端的復(fù)制的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧

游戲上線很久了,有些玩家慢慢就流失了,為了讓剛流失的玩家再度回歸所以做了召回功能!如果一個200級的玩家10天沒上線且成功召回的,就會給予召回玩家豐厚的獎勵!

Q:那如何召回這個流失的玩家呢?

A:召回肯定得有類似召回碼的東東啊,是的。服務(wù)器根據(jù)玩家ID生成一定位數(shù)的字母和數(shù)字組合,發(fā)給客戶端,客戶端召回界面顯示召回碼

Q:不可能讓玩家一個一個在聊天框輸入吧?玩家肯定會罵:“什么傻逼設(shè)計,老子不玩了,,,”

A:玩家是大爺,所以做復(fù)制召回嗎功能還是很有必要的!

那么如何實現(xiàn)這個功能呢?Unity不支持復(fù)制嗎?是的,Unity是支持,僅僅支持PC端的,就是這玩意TextEditor!

TextEditor text = new TextEditor();

text.content = new GUIContent(yourText);

text.OnFocus();

text.Copy();

這么就實現(xiàn)了PC端的復(fù)制,那么移動端的怎么做呢,別著急,小伙子,一個一個來,先看看Android是怎么復(fù)制的!

首先創(chuàng)建安卓庫工程,在MainActivity里添加這段代碼就好,導(dǎo)出jar包在Unity中調(diào)用即可,接下來會說Unity里如何去調(diào)用!

步驟:

1. 在Untiy3D項目的Assets目錄下創(chuàng)建Plugins目錄。

2. 在Plugins目錄下創(chuàng)建Android目錄。

3. 在Android 目錄下創(chuàng)建bin目錄。

4. 在bin 目錄下放置你編寫的類的jar包

package com.wuzhang.testandroid;

import com.unity3d.player.UnityPlayer;

import com.unity3d.player.UnityPlayerActivity;

import android.R.string;

import android.app.Activity;

import android.app.ActivityManager;

import android.app.ActivityManager.RunningAppProcessInfo;

import android.app.Service;

import android.content.ClipData;

import android.content.ClipDescription;

import android.content.ClipboardManager;

import android.content.Context;

import android.os.Looper;

import android.support.v4.app.NotificationCompat;

import android.support.v4.content.FileProvider;

import android.view.ContextThemeWrapper;

public class MainActivity extends UnityPlayerActivity {

private Vibrator mVibrator01;//聲明一個振動器對象

private static Context instance;

private String TAG = "log";

public static String gameObgectName = "Main Camera";

public static String methodName = "OnCoderReturn";

public static ClipboardManager clipboard = null;

private BatteryListener listener;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

instance = getApplicationContext();

}

public static Context getContext()

{

return instance;

}

/*

* 向剪貼板中添加文本

*/

public void copyTextToClipboard(final String str)

throws Exception {

if (Looper.myLooper() == null){

Looper.prepare();

}

clipboard = (ClipboardManager) MainActivity.instance.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";

}

}

安卓中如何調(diào)用這段代碼呢?

///

/// 剪切文本

///

///

public void CopyToClipboard(string input)

{

#if UNITY_ANDROID

// 對Android的調(diào)用

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject activity = jc.GetStatic("currentActivity");

if (activity == null)

return;

// 復(fù)制到剪貼板

activity.Call("copyTextToClipboard", input);

//從剪貼板中獲取文本

string text = activity.Call("getTextFromClipboard");

#endif

}

安卓的好了,接著該是高大上的IOS了,有些人看到IOS就慫了,不知道從哪下手,不知道該怎么去寫,完全沒概念。不好意思,我和你們也是一樣慫,我也是大姑娘上轎,頭一回!不要慫,就是干,大不了第一次不會成功,就去調(diào)試唄!有這個心態(tài),說明你還是幸運的,我們直接是線上項目,沒有時間去調(diào)試的,做完時,我心里沒一點底啊!超慫的那種,,,后來出iPhone的測試包,沒想到一次過了,心里的大石頭終于落下了!那我們看看IOS是怎么實現(xiàn)的吧?IOS使用的ObjectC和C語言還是有些類似的,在OC中.h文件是聲明,.m文件是實現(xiàn),所以需要Clipboard.h和Clipboard.mm兩個文件!

首先去聲明這個Clipboard類,

@ interface Clipboard : NSObject

extern "C"

{

/* compare the namelist with system processes */

void _copyTextToClipboard(const char *textList);

}

@end

接下來是Clipboard.mm文件,切記千萬不要忘記引用 #import "Clipboard.h"

#import"Clipboard.h"

@implementation Clipboard

//將文本復(fù)制到IOS剪貼板

- (void)objc_copyTextToClipboard : (NSString*)text

{

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];

pasteboard.string = text;

}

@end

extern "C" {

static Clipboard *iosClipboard;

void _copyTextToClipboard(const char *textList)

{

NSString *text = [NSString stringWithUTF8String: textList] ;

if(iosClipboard == NULL)

{

iosClipboard = [[Clipboard alloc] init];

}

[iosClipboard objc_copyTextToClipboard: text];

}

}

.h文件和.mm文件需要放在Unity項目的Assets/Plugins/下的任意路徑下即可,一般程序員大多數(shù)是有潔癖的不放到Assets/Plugins/IOS/文件夾下,心里就是不舒服!再啰嗦兩句.m和.mm有什么區(qū)別嗎?還真有,“.m"中只能編寫Object-C代碼,而”.mm"中可以編寫C代碼。所以有 extern "C" 說明我們使用的是C代碼!

Unity3D對IOS類的調(diào)用

1. 在Untiy3D項目的Assets目錄下創(chuàng)建Plugins目錄。

2. 在Plugins目錄下創(chuàng)建IOS目錄。

3. 在IOS 目錄下放置".h"文件和".mm"文件。

好了,趕緊說怎么調(diào)用呢,這會都夜里1點了,再啰嗦就天亮了!調(diào)用.h聲明的函數(shù)即可:

//調(diào)用clipboard.h中的接口

_copyTextToClipboard (input);

Debug.LogError ("CopyToClipboard_______"+input);

就這么調(diào)用就OK了,是不是很失望!這個是所有平臺的調(diào)用

public static void CopyToClipboard(string input)

{

#if UNITY_ANDROID

// 對Android的調(diào)用

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

AndroidJavaObject activity = jc.GetStatic("currentActivity");

if (activity == null)

return;

// 復(fù)制到剪貼板

activity.Call("copyTextToClipboard", input);

#elif UNITY_IPHONE

//調(diào)用clipboard.h中的接口

_copyTextToClipboard (input);

Debug.LogError ("CopyToClipboard_______"+input);

#elif UNITY_EDITOR

TextEditor te = new TextEditor();

te.content = new GUIContent(input);

te.OnFocus();

te.Copy();

#endif

}

好了,到此寫完了,現(xiàn)在感覺熬夜寫博客事件很奢侈的事情了,睡覺嘍!有問題的小伙伴記得@我,共同交流,下篇寫獲取手機(jī)剩余存儲空間的插件!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

總結(jié)

以上是生活随笔為你收集整理的unity Android 剪贴板,Unity移动端的复制要这么写示例代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 被黑人各种姿势猛c哭h文1 | 日韩精品一区二区三区无码专区 | 激情六月色 | 亚洲一区在线免费 | 婷婷丁香视频 | 91在线观看欧美日韩 | 在线观看中文字幕码 | 九色tv | 久久国产精品精品国产色婷婷 | av高清 | 秋霞午夜影院 | 欧美 日韩 国产 成人 在线 | 日本少妇激三级做爰在线 | 嫩草午夜少妇在线影视 | 亚洲最新中文字幕 | 国产一级生活片 | 日韩精品无码一区二区三区 | 一本色道久久综合无码人妻 | 在线免费观看黄色片 | 亚洲一区二区三区av无码 | 国产免费无遮挡吸奶头视频 | 日韩精品综合 | 欧美一级成人 | 136fldh导航福利微拍 | 久久免费精品 | 亚洲黄片一区 | 国产精品www | 成长快手短视频在线观看 | 69影院在线观看 | 人妻射精一区二区 | 中国黄色大片 | 密乳av| 亚洲精品aaa | 一直草| 日韩一区av在线 | 欧美无遮挡 | 九九黄色大片 | 亚洲国产天堂av | 免费久久精品 | 国产亚洲精品久久久久四川人 | 亚洲一级大片 | 丁香婷婷六月 | 亚洲国产精品无码久久久 | 亚洲精品视频三区 | 福利在线观看 | 美女被猛网站 | 申鹤乳液狂飙 | 欧美无砖砖区免费 | 干欧美少妇 | а√天堂资源官网在线资源 | 日本特级黄色录像 | 欧美精品欧美极品欧美激情 | 日韩伦理一区二区三区 | 日韩精品久久一区二区 | 欧美亚色| 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 欧美熟妇精品黑人巨大一二三区 | 日韩经典中文字幕 | 亚洲精品网站在线观看 | 精品无码人妻一区二区三 | 特黄老太婆aa毛毛片 | 免费在线观看av片 | 今天高清视频在线观看视频 | 亚洲欧洲成人在线 | 日韩av不卡一区 | 中国少妇无码专区 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 国产一级淫片免费 | 欧美xxxx中国| 在线观看免费成人 | 借种(出轨高h) | 亚洲精品日产精品乱码不卡 | 国产欧美日韩综合精品一区 | 国产老熟女伦老熟妇露脸 | www.亚洲精品 | 欲色综合 | 国语对白做受xxxxx在线中国 | 欧美,日韩,国产精品免费观看 | 亚州av片| 日韩淫视频| 国产一区自拍视频 | 日韩欧美毛片 | 肥臀av | 日本特黄一级大片 | 人人妻人人澡人人爽精品欧美一区 | 欧美精品在欧美一区二区少妇 | 欧美丰满美乳xxx高潮www | 国产xxxxx在线观看 | 肥熟女一区二区三肥熟女 | 日本在线视频一区二区三区 | 在线国产欧美 | 欧美视频一区二区三区在线观看 | 一区二区激情视频 | 中文字幕在线视频一区 | 国产精品毛片va一区二区三区 | 精品91自产拍在线观看二区 | 日韩精品一区二区三区不卡 | 久久99婷婷 | 偷偷色噜狠狠狠狠的777米奇 |