Unity发布WebGL平台导出文件到本地

2 篇文章 0 订阅

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");
    }
}

这样就能下载一个文本文件了,其他类型文件用同样的方法调用。

Unity导出WebGL时,可以使用动态获取模型文件的方法。首先,需要将模型文件以可访问的方式加载到Unity的资源目录中。这可以通过将模型文件放置在StreamingAssets文件夹中实现。该文件夹的内容将被打包到WebGL构建中,并可以在运行时访问。 创建一个用于加载模型文件的脚本。脚本应该包括一个公共函数,该函数可以接受模型文件的路径,并返回加载的模型对象。在函数内部,可以使用Unity的WWW类来加载模型文件。使用StreamingAssets文件夹的路径和模型文件的路径创建一个完整的URL。然后,使用WWW类的构造函数并传递该URL来加载模型文件。 一旦模型文件加载完成,可以根据应用的需求对其进行处理。例如,可以使用Unity的Instantiate函数将模型实例化到场景中,或将其用作角色模型、道具或其他游戏资产。 在Unity中,可以将模型文件导出WebGL构建。通过依次选择“文件”→“构建设置”→“WebGL”,可以打开WebGL构建设置窗口。在窗口中,可以设置构建的目标文件夹、名称和其他设置。然后,点击“构建”按钮开始构建WebGL版本。 构建完成后,将生成一个包含所有必要文件文件夹。此文件夹可以使用Web服务器进行托管,或直接通过浏览器打开。在浏览器中运行时,UnityWebGL版本将动态获取模型文件并加载到场景中,实现动态获取模型文件的效果。 这是使用Unity导出WebGL并动态获取模型文件的一种方法。通过按照上述步骤设置和执行,您将能够在WebGL版本中实现动态加载模型的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值