webgl平台的文件对话框,unity只提供了编辑器模式下的,导入dll打包后会报错。
思路:c#可以调用js的代码
通过DOM生成一个input file按钮,调用click可以弹出。
但是问题:
游览器安全设置,无法模拟点击file按钮,在console里面可以跳出对话框,但是代码调用没有办法执行,必须点击按钮。
unity用UGUI拼的Button,点击触发事件可以加,不想点击两次,只能做一个开关。
Button 的 PointerEnter , PointerExit 事件,调用js脚本add或者删除事件,给body注册input的执行事件。当移动鼠标到UGUI的button按钮时候,点击按钮,实际上点击在body上,执行回调就可以完成,可以实现点击一次,弹出框体。
初始化一次:利用js代码,生成input按钮
private string ReceiverObjName = "FileDialogReceiver";
Application.ExternalEval(@"
let fileuploader = document.getElementById('fileuploader');
if (!fileuploader) {
fileuploader = document.createElement('input');
fileuploader.setAttribute('style','display:none