Unity发布WebGL平台导出文件到本地
webgl平台导出文件只能调用js方法里面的下载功能具体实现方案如下:
1,编写jslib,创建一个DownloaderPlugin.jslib文件导入到unity代码如下:
-
mergeInto(LibraryManager.library, {
-
Download: function (str, fn) {
-
var msg = UTF8ToString(str);
-
var fname = UTF8ToString(fn);
-
function fixBinary(bin) {
-
var length = bin.length;
-
var buf = new ArrayBuffer(length);
-
var arr = new Uint8Array(buf);
-
for (var i = 0; i < length; i ) {
-
arr[i] = bin.charCodeAt(i);
-
}
-
return buf;
-
}
-
var binary = fixBinary(atob(msg));
-
var data = new Blob([binary]);
-
var link = document.createElement('a');
-
link.download = fname;
-
link.href = URL.createObjectURL(data);
-
document.body.appendChild(link);
-
link.click();
-
document.body.removeChild(link);
-
}
-
});
2,调用,首先把需要下载的文件转成base64字符串传给js再下载这个文件,可以支持文本图片音频等各种文件,但是似乎有大小限制具体多少不清楚。具体调用方式如下:
-
using System;
-
using System.Collections;
-
using System.Collections.Generic;
-
using System.Runtime.InteropServices;
-
using System.Text;
-
using UnityEngine;
-
-
public class test : MonoBehaviour
-
{
-
[DllImport("__Internal")]
-
private static extern void Download(string base64str, string fileName);
-
// Start is called before the first frame update
-
void Start()
-
{
-
string base64str = Convert.ToBase64String(Encoding.UTF8.GetBytes("这是一个文本"));
-
Download(base64str, "a.txt");
-
}
-
}
这样就能下载一个文本文件了,其他类型文件用同样的方法调用。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiakkac
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22