在Unity中开发软件中,会出现很多时候需要将Unity中的文本内容复制到剪贴板中,然后复制到其他软件的应用中去,例如分享一个链接,例如会议软件复制会议号码等
注意 除了本篇的复制文本功能,其他的Webgl扩展功能请查看另一篇专栏文章
该专栏文章《Unity的Webgl端编写jslib常用功能》,提供了10个常用功能,功能如下(后续如果有增加功能还会更新至该文章中):
1、“监听网页关闭或刷新”
2、“获取当前设备时PC还是移动端”
3、“获取当前网址”
4、“获取LocalStorage的数据”
5、“保存数据到LocalStotage”
6、“获取SessionStorage的数据”
7、“保存数据到SessionStorage”
8、“将文本拷贝到剪贴板”
9、“关闭当前网页”
10、“打开网页”
首先C#语言中提供了一个字段,只要将字符串内容赋值给这个字段,就能将文本内容复制到系统的剪贴板中
这个字段如下
GUIUtility.systemCopyBuffer = “测试内容复制到剪贴板”;
只需要将复制文本内容赋值给上面这个字段即可,但是这个字段原先只有在PC端有效果,现版本的Unity,不知道是语言版本更新导致的还是Unity版本里做了适配,支持移动端的复制到剪贴板了。
但在Webgl端还是不支持,Webgl端是个特殊的版本,因此很多C#语言库中的方法和功能都会在跨平台编译时导致失效,不管是用Mono还是IL2CPP的跨平台编译。
因此将文本复制到剪贴板这个功能就无效,需要我们自己写js代码放到Unity中调用,好在新版本的Unity已经支持js代码了
因此我们只需要在Assets文件夹下创建一个txt文件,将后缀改成jslib,就可以在该文件中编写js代码了如下图:
在jslib文件中首先需要声明一个对象,并且将全局对象添加到Unity的全局库中
例如: