unity PC端怎么vba 读取剪贴板板的内容

可以快速保存、访问和粘贴文本片段的Unity漂亮工具
反复键入特定的信息 - 如电子邮件地址或家庭地址,详细的终端命令,及时发送用户喜爱的电视节目的资讯 - 可是件苦差事。
Snippets & 方便的访问存储的文本的方法
谢天谢地,这个世界上有一些工具可以帮助我们(做这些事儿)。
&Snippets& 就是Unity中这种组件之一。 这是一个简单的启动程序小工具,它让你在一个文件中保存和存储摘下来的内容,然后当你需要的时候从Unity的一个快速列表里复制到剪贴板。
在某些人把他的内裤扔到我的脸上之前,我得说Snippets不是唯一的这种工具,它甚至不是第一个提供这一系列功能的。但是它独特的是通过Unity启动器来提供这一系列功能。
这个软件具功能不错又足够简单,提供以下功能:
添加、访问存储在txt文件中的文本段
在快速列表里查看保存的文本段
点击文本段就可以复制到剪贴板
提供了把剪贴板中的内容保存到txt文件的选项
尽管它不是一个&智能&的剪贴板管理工具 & 它只是列出了你特别添加的项目;它不会列出你最近的剪贴板项目历史,但仍然是一个非常方便的小工具。
怎样为Unity安装Snippets
想要使用这个漂亮的启动器项目,你需要先安装一个命令行剪贴板工具XClip。点击下面的按钮(链接)从软件中心安装。
下一步,下载下面的&Snippets&压缩文件。这包含了剩余所有的使用这个应用所需要的东西。
当这个压缩文件下完之后你就可以解压了。进入生成的文件夹,然后按Ctrl+H显示隐藏的文件。移动文件夹&.snippets-launcher&到你的主文件夹中。如果不这么做,这个组件将无法正常工作。
下一步是安装启动器项目。这是被一个你刚搬到文件夹里面的脚本关照的,但它不具有可执行的权限(需要安装),因此,我们首先需要关照它一下。
打开一个新的终端窗口在里面小心的键入下面的命令:
cd .snippets-launcher/ && chmod +x snippets.sh
./snippets.sh
就是这样;Snippets应该已经整装待发了。打开Unity Dash搜索Snippets然后把它拖到启动器上去:
左键点击启动器打开可以添加你的文本段的文本文件
右键点击启动器上的项目打开快速列表
快速列表里的选项:
左键点击文本段以添加到剪贴板
左键点击&日期&可以复制当前日期
点击&添加剪贴板内容&可以把当前剪贴板中的内容加入到.txt文件中(译注:实际上保存的文本是存储在一个文本文件中)
在添加一个项目到.txt文件后点击&更新启动器&
更多关于这个懒人的工具信息尽在,在那里它的开发者,&Stinkeye&,会很高兴地提供帮助。
译者: 校对:
原创翻译, 荣誉推出
上一篇:下一篇:
共计翻译: 13 篇
贡献时间: -&
分享到微信朋友圈
打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。3136人阅读
Android(55)
ClipboardManager clipboardM
String tempS
public String GetClipBoardContent()
runOnUiThread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
clipboardManager=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
if(clipboardManager==null)
Log.i(&cp&, &clipboardManager==null&);
if(clipboardManager.getText()!=null)
tempStr=clipboardManager.getText().toString();
return tempS
char* Unity3dGetClipBoardContent()
UIPasteboard* pBoard=[UIPasteboard generalPasteboard];
if(pBoard!=NULL)
NSString* pNsStr=pBoard.
if(pNsStr!=NULL)
return MakeStringCopy([pNsStr UTF8String]);
NSLog(@&pBoard.string is null&);
return MakeStringCopy(&&);
NSLog(@&UIPasteboard pBoard is null&);
return MakeStringCopy(&&);
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:926656次
积分:12680
积分:12680
排名:第962名
原创:318篇
转载:108篇
评论:233条
文章:32篇
阅读:96124
(1)(1)(5)(1)(3)(3)(3)(5)(6)(4)(7)(1)(18)(18)(17)(13)(9)(24)(25)(2)(7)(5)(9)(17)(11)(7)(25)(8)(9)(1)(4)(12)(6)(2)(3)(16)(21)(10)(14)(1)(7)(25)(11)(6)(13)(4)(8)(7)(2)Unity3D 调用Android与IOS的剪贴板 - 推酷
Unity3D 调用Android与IOS的剪贴板
Unity3D剪贴板
最近遇到一个需要调用Android与IOS设备本身剪贴板的需求,就是在Unity中,要将文本复制到设备本身的剪贴板中,然后在其他应用程序中都能粘贴。
最开始在网上查到的方式是使用Unity3D本身自带的TextEditor 类进行使用,使用方法如下:
TextEditor te = new TextEditor();
te.content = new GUIContent(yourText);
te.OnFocus();
te.Copy();
期初在电脑上测试时是可以用的,然而这种到了Android和IOS设备上却坑了……完全没反应T_T。在多方查找之下,终无结果,所以能想到的方法就是在Unity中使用C#调用Android和IOS自身的接口分别实现。
ClipboardManager cm =(ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
//复制到剪贴板
cm.setText(message);
//从剪贴板获取文本
string text = cm.getText();
针对Android和IOS双平台
博主在踩了众多的坑之后,终于将Android和IOS分别实现,于是通过这个剪贴板例子到这里来跟大家分享一下Unity3D调用Android和IOS的一些简单的方法。
Unity3D调用Android剪贴板
public class ClipboardTools {
public static ClipboardManager clipboard =
// 向剪贴板中添加文本
public void copyTextToClipboard(final Context context, final String str) {
if (Lopper.myLooper() == null){
Looper.prepare();
clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText(&data&, str);
clipboard.setPrimaryClip(textCd);
handler.getLooper().quit();
// 从剪贴板中获取文本
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();
Android复制
首先,Android剪贴板的使用要通过从Activity中获取ClipboardManager 服务,然后才能进行使用。在这里我们先定义了一个静态的ClipboardManager 引用:
public static ClipboardManager clipboard =
原因是当Unity3D对Android类(ClipboardTools)的方法掉用完后,可能会被垃圾回收,所以将ClipboardManager 定义为静态才能通过getTextFromClipboard()方法获取先前存入剪贴板的文本。
对Android剪贴板类ClipboardManager 的使用是固定的用法,这里就不详细介绍了,重点在于对Looper的使用:
if (Lopper.myLooper() == null){
Looper.prepare();
由于ClipboardTools类并没有继承与Activity,所以对ClipboardTools类的调用并非主线程,所以要先注册对消息的监听,就是使用Looper.prepare()方法进行注册,为了防止重复注册,我们需要先进行判断,就是通过Lopper.myLooper()方法判断是否Looper已经对本线程进行注册,博主在这块卡住了很长的时间,原因是晚上查到对Android剪贴板的使用并没有将这点导入,直接的使用实惠报错的。
Android粘贴
做好了复制,粘贴模块就比较简单了,固定的模式,博主在此处添加了一些 if 的逻辑判断,是对剪贴板中内容进行判断,如:是否为文本,是否有内容等……但要注意的是,若没有将ClipboardManager 设为静态,则在调用完复制方法时,ClipboardTools类可能会被垃圾回收,那么ClipboardManager 的引用会变为null,从新获取不太方便,所以博主就将其设为静态了。
Android剪贴板项目导入Unity3D
在Unity3D中调用Android的东西,首先要在Unity3D项目中创建好环境:
1. 在Untiy3D项目的Assets目录下创建Plugins目录。
2. 在Plugins目录下创建Android目录。
3. 在Android 目录下创建bin目录。
4. 在bin 目录下放置你编写的类的jar包。
5. 在bin 目录下放置Unity3D的 classes.jar 包。
前三步都是创建文件夹就没什么好说了,从第四步开始,这里所说的Jar包仅仅是你所写的那个类的jar包,并非整个Android项目的jar包,使用Eclipse编写的同学可以在???中将Is Library勾上,就可以直接在Android项目下的bin文件夹下找到打好的Jar包。
第五步所说的Unity3D的 classes.jar 包,在你的Unity3D安装目录下的Editor\Data\PlaybackEngines\androidplayer\development\bin 目录下,直接将其复制到你的Unity3D项目的bin 目录下即可。
Unity3D调用Android类与方法
在Unity3D中对Android类与方法的调用方法代码如下:
#if UNITY_ANDROID
AndroidJavaObject androidObject = new AndroidJavaObject(&com.test.ClipboardTools&);
AndroidJavaObject activity = new AndroidJavaClass(&com.unity3d.player.UnityPlayer&).GetStatic&AndroidJavaObject&(&currentActivity&);
if (activity == null)
// 复制到剪贴板
androidObject.Call(&copyTextToClipboard&, activity, input);
// 从剪贴板中获取文本
String text =androidObject.Call&String&(&getTextFromClipboard&);
首先,或取出先前编写的Android类的实例对象:
AndroidJavaObject androidClass = androidClass = new AndroidJavaObject(&com.test.ClipboardTools&);
要注意的是,后面的字符串&com.test.ClipboardTools&是你Android项目的
,这个不能写错,写错就无法或取出你要的Android类。
接着,是获取Android所需要的Activity对象,也就是Android 项目中 copyTextToClipboard 方法所需要的 Context 参数,由于我们的Android类没有继承于Activity 类,而对ClipboardManager 的使用又需要当前Android运行时主线程的Activity,所以博主采用的是从 Unity3D 中获取后传输过去。
最后是对ClipboardManager 类的 “复制”、“获取”两个方法的调用。
#if UNITY_ANDROID 和 #endif 代表的是在指定的平台才进行编译,如此处的 UNITY_ANDROID 代表期间的代码只在Android平台才进行编译,若是直接使用,则可能在IOS平台出现编译异常,因为IOS平台并没有AndroidJavaObject 这种类的库文件。
Unity3D调用IOS剪贴板
使用Unity3D调用IOS的剪贴板相对容易,但是需要在MAC上进行编写测试。
IOS对剪贴板的使用
对IOS平台的调用博主采用简洁的方式,让Unity3D调用C,再用C去调用IOS的方法。先附上两个文件的源码:
Clipboard.h 文件 :
@ interface Clipboard : NSObject
extern &C&
compare the namelist with system processes
void _copyTextToClipboard(const char *textList);
Clipboard.mm 文件 :
@implementation Clipboard
//将文本复制到IOS剪贴板
- (void)objc_copyTextToClipboard : (NSString*)text
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string =
extern &C& {
static Clipboard *iosC
void _copyTextToClipboard(const char *textList)
NSString *text = [NSString stringWithUTF8String: textList] ;
if(iosClipboard == NULL)
iosClipboard = [[Clipboard alloc] init];
[iosClipboard objc_copyTextToClipboard: text];
与C相同,Object-C也是需要一个头文件负责定义,还有一个真正编写内容的文件,这个文件可以有两种后缀“.m&和”.mm&,“.m&中只能编写Object-C代码,而”.mm&中可以编写C代码。
在Clipboard.h中,我们定义了一个C的方法,在Clipboard.mm中,我们实现了C的方法,并在其中调用了IOS的剪贴板功能。代码挺简单,就不进行一一解释了。
这里稍微发下牢骚:博主学习过数种编程语言,自信在学习一种新语言时不会写至少能看懂,然而Object-C的出现碾碎了博主的现实,尼玛,这方法定义到底是神马意思?简直反人类啊……
Unity3D对IOS类的调用
Unity3D对IOS的使用倒是比较简单,不过也需要进行环境配置:
1. 在Untiy3D项目的Assets目录下创建Plugins目录。
2. 在Plugins目录下创建IOS目录。
3. 在IOS 目录下放置&.h&文件和&.mm&文件。
然后是调用的C#源码:
using UnityE
using System.C
using System.Runtime.InteropS
public class ClipboardManager
#if UNITY_IPHONE
/* Interface to native implementation */
[DllImport (&__Internal&)]
private static extern void _copyTextToClipboard(string text);
public static void CopyToClipboard( string input)
#if UNITY_ANDROID
// 对Android的调用
#elif UNITY_IPHONE
_copyTextToClipboard(input);
这是一个C#类,CopyToClipboard()方法是对剪贴板的应用,大家可以看到,在ClipboardManager类里面,定义了这种东西:
#if UNITY_IPHONE
/* Interface to native implementation */
[DllImport (&__Internal&)]
private static extern void _copyTextToClipboard(string text);
这表示在IOS平台的编译上,会导入Objcet-C编写的IOS方法,这是固定的写法,大概了解即可,
不要忘了导入库文件哦
(using System.Runtime.InteropS)
在下面,就可以直接对IOS定义方法的调用了,不过博主还是推荐加上以下东西:
#if UNITY_ANDROID
#elif UNITY_IPHONE
以免在跨平台编译时出现问题。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致&>&&>&&>&&>&C#获取剪切板内容
C#获取剪切板内容
上传大小:79KB
C#获取剪切板内容
综合评分:4.7(9位用户评分)
所需积分:0
下载次数:89
审核通过送C币
创建者:nigelyq
创建者:doomlord
创建者:djk8888
课程推荐相关知识库
积分&26277
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
C#获取剪切板内容
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
heixiazuoluo
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:}

我要回帖

更多关于 c 读取剪贴板 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信