当前位置: 首页 > news >正文

Unity Standalone File Browser,Unity打开文件选择器

Unity Standalone File Browser,Unity打开文件选择器

下载地址:GitHub链接:

https://github.com/gkngkc/UnityStandaloneFileBrowser

简单的示例代码

using SFB;
using System;
using System.IO;
using UnityEngine;
using UnityEngine.UI;public class NewBehaviourScript : MonoBehaviour
{/// <summary>/// 用于显示图片的image/// </summary>public Image myimage;/// <summary>/// 图片选择按钮/// </summary>public Button btnSelect;/// <summary>/// 图片读取按钮/// </summary>public Button btnRead;private void Start(){btnSelect.onClick.AddListener(OnSelectImageButtonClicked);btnRead.onClick.AddListener(LoadAndDisplayBase64Image);}public void OnSelectImageButtonClicked(){//        // Open file with filter//        var extensions = new[] {//    new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),//    new ExtensionFilter("Sound Files", "mp3", "wav" ),//    new ExtensionFilter("All Files", "*" ),//};// Open file with filtervar extensions = new[] {new ExtensionFilter("Image Files", "png", "jpg", "jpeg" )};string[] paths = StandaloneFileBrowser.OpenFilePanel("Select Image", "", extensions, false);if (paths.Length > 0){string imagePath = paths[0];byte[] imageData = File.ReadAllBytes(imagePath);// 将图像数据转换为Base64字符串string base64ImageString = Convert.ToBase64String(imageData);// 将Base64字符串写入文本文件File.WriteAllText(Application.streamingAssetsPath + "/image_data.txt", base64ImageString);}}public void LoadAndDisplayBase64Image(){if (File.Exists(Application.streamingAssetsPath + "/image_data.txt")){// 从文件读取Base64字符串string base64ImageString = File.ReadAllText(Application.streamingAssetsPath + "/image_data.txt");// 将Base64字符串解码回字节数组byte[] imageData = Convert.FromBase64String(base64ImageString);// 创建Texture2D并加载图像数据Texture2D texture = new Texture2D(100, 100);texture.LoadImage(imageData);// 将Texture2D转换为Sprite并设置到Image组件上myimage.sprite = CreateSpriteFromTexture(texture);}}private Sprite CreateSpriteFromTexture(Texture2D texture){Rect rect = new Rect(0, 0, texture.width, texture.height);Vector2 pivot = new Vector2(0.5f, 0.5f);return Sprite.Create(texture, rect, pivot);}
}

场景布局
在这里插入图片描述

代码解析:
引用命名空间: using SFB;
两个按钮实现功能,一个image用于显示图片

        // Open file with filtervar extensions = new[] {new ExtensionFilter("Image Files", "png", "jpg", "jpeg" )};

添加过滤条件,效果如下图,在右下角
在这里插入图片描述

多条件过滤,

        // Open file with filtervar extensions = new[] {new ExtensionFilter("Image Files", "png", "jpg", "jpeg" ),new ExtensionFilter("Sound Files", "mp3", "wav" ),new ExtensionFilter("All Files", "*" ),};

效果在右下角
在这里插入图片描述

选择完毕之后,点击读取按钮会读取上面写如的base64文件,将图片显示到场景中

http://www.lryc.cn/news/337433.html

相关文章:

  • 面向对象的架构三段式写一篇论文
  • npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED
  • pytorch-多分类实战之手写数字识别
  • httpsok-快速申请谷歌SSL免费证书
  • LiveGBS流媒体平台GB/T28181功能-国标级联中如何自定义通道国标编号编辑通道编号保持唯一性
  • mysql 大表凌晨定时删除数据
  • ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback
  • 数据仓库的—数据仓库的体系架构
  • 【C/C++基础知识】const 关键字
  • Docker之数据卷和Dockerfile
  • pull拉取最新代码
  • 工控 modbusTCP 报文
  • 在Ubuntu服务器上快速安装一个redis并提供远程服务
  • 玩机进阶教程------手机定制机 定制系统 解除系统安装软件限制的一些步骤解析
  • Bilstm双向长短期神经网络多输入单输出回归分析
  • ELK+Filebeat日志分析系统
  • flex吃干抹净
  • 【单片机毕业设计8-基于stm32c8t6的RFID校园门禁系统】
  • uni-app web端使用getUserMedia,摄像头拍照
  • 2024-简单点-观察者模式
  • STM32—DMA直接存储器访问详解
  • 【JavaEE初阶系列】——网络编程 TCP客户端/服务器 程序实现
  • CMake构建OpenCv并导入QT项目过程中出现的问题汇总
  • AcWing 796. 子矩阵的和——算法基础课题解
  • macos 查看 远程服务器是否开放某个端口
  • GraphQL注入
  • 以太坊源码阅读01
  • Spark-Scala语言实战(15)
  • 【SpringBoot XSS存储漏洞 拦截器】Java纯后端对于前台输入值的拦截校验实现 一个类加一个注解结束
  • 【微信小程序】canvas开发笔记