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

news2024/11/26 0:35:57

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 filter
       var 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 filter
        var extensions = new[] {
    new ExtensionFilter("Image Files", "png", "jpg", "jpeg" )};

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

多条件过滤,

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1591154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自然语言处理八-transformer实现翻译任务-一(输入)】

自然语言处理八-transformer实现翻译任务-一&#xff08;输入&#xff09; transformer架构数据处理部分模型的输入数据(图中inputs outputs outputs_probilities对应的label)以处理英中翻译数据集为例的代码 positional encoding 位置嵌入代码 鉴于transfomer的重要性&#xf…

Ja-netfilter(idea激活码破解原理)分析

Ja-netfilter&#xff08;idea破解&#xff09;分析 简介 ja-netfilter是一款可以破解jetbrainsIDE系列的javaagent jar 包。 原理简介 通过javaagent创造修改字节码的时机。通过asm修改相关类&#xff0c;达到hook特定方法的作用。主要依赖power&#xff08;rsa方法hook&a…

【Java】Set集合的基本使用

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、HashSet集合 1.HashSet集合的特点 2.HashSet常用方法 ①&#xff1a;add(Object o)&#xff1a;向Set集合中添加元素&#xff0c;不允许添加重复数据。 ②&#xff1a;size()&#xff1a;返回Set集合中的元素个数…

NASA数据集——亚洲夏季季风化学与气候影响项目超高灵敏度气溶胶光谱(UHSAS)数据

ACCLIP_Aerosol_AircraftInSitu_WB57_Data 简介 ACCLIP_Aerosol_AircraftInSitu_WB57_Data 是亚洲夏季季风化学与气候影响项目&#xff08;ACCLIP&#xff09;期间收集的原地气溶胶数据。本数据集收录了来自下一代激光质谱仪&#xff08;PALMS-NG&#xff09;、单颗粒烟尘光度…

0101tomcat部署war访问mysql失败-容器间通信-docker项目部署

文章目录 一、简介二、部署1、mysql数据迁移2、docker部署redis3、docker部署tomcat并运行war包 三、报错四、解决1 分析2 解决 结语 一、简介 最近参与开发一个项目&#xff0c;其中一部分系统需要迁移。从阿里云迁移到实体服务器&#xff0c;使用docker部署。系统使用Java语…

RAG进阶之通用文档处理:从RAGFlow、TextMonkey到mPLUG-DocOwl 1.5

前言 我司RAG项目组每个月都会接到一些B端客户的项目需求&#xff0c;做的多了&#xff0c;会发现很多需求是大同小异的&#xff0c;所以我们准备做一个通用的产品&#xff0c;特别是对通用文档的处理 而在此之前&#xff0c;我们则想先学习一下目前市面上各种优秀的解决方法…

IIS服务器更换即将过期的SSL证书

公司IIS服务器证书快要过期&#xff0c;替换证书的步骤&#xff1a; Winr输入mstsc命令&#xff0c;显示远程登录&#xff1b;输入服务器IP以及密码&#xff0c;进行远程登陆登陆IIS服务器&#xff0c;winr输入inetmgr命令显示IIS操控器&#xff1b;选择服务器证书--点击服务器…

成为摄影拍照高手,摄影技术进阶秘籍

一、资料前言 本套摄影高手资料&#xff0c;大小2.02G&#xff0c;共有57个文件。 二、资料目录 DSLR数码单反摄影圣经.pdf photoshop超细的人像后期磨皮及专业美化.docx “失传”的人像拍摄绝技.doc 白加黑减.怎样应用曝光补偿.pdf 标准镜头秘笈&#xff1a;标准镜如何…

快速寻找可以构建出网通信隧道的计算机

点击星标&#xff0c;即时接收最新推文 本文选自《内网安全攻防&#xff1a;红队之路》 扫描二维码五折购书 为加强内网的安全防范&#xff0c;安全管理员往往会限制内网计算机访问互联网&#xff0c;当然不同机构的限制策略是不一样的&#xff0c;有的完全阻断了内网计算机访问…

langchain LCEL,prompt模块,outputparse输出模块

目录 基本代码 prompt模块 prompt模版控制长度 outputparse格式化输出 并行使用调用链 LangChain表达式语言&#xff0c;或者LCEL&#xff0c;是一种声明式的方式&#xff0c;可以轻松地将链条组合在一起 langchian 可以使用 通义千问&#xff0c;我们用通义千问&#x…

openkylin系统通过网线连接ubuntukylin系统上网攻略

openkylin系统通过网线连接ubuntukylin系统上网攻略 主机1&#xff1a;x64 amd &#xff0c;系统&#xff1a;ubuntukylin 22.04 &#xff0c;状态&#xff1a;通过wifi连接热点进行上网&#xff0c;并共享网络。 主机2&#xff1a;x64 intel &#xff0c;系统&#xff1a;ope…

阿里一面:如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆?...

这次应该是互联网及软件行业的第三次寒潮&#xff0c;大家在寒潮中一定要继续保持学习&#xff0c;寒潮挺过去以后还是会迎来新的发展机遇。 有粉丝去阿里面试&#xff0c;跟码哥分享了其中一题面试问题「如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆&#x…

linux创建文件、linux创建文件的几种方式、touch、echo、cat、vi、vim

文章目录 一、创建文件1.1、touch1.2、echo1.3、cat1.4、vi或vim 一、创建文件 1.1、touch touch命令&#xff1a;用于创建一个新的空文件或者更新已存在文件的访问和修改时间。 &#xff08;1&#xff09;如果目标文件不存在&#xff0c;则新建一个文件 touch demo.txt&am…

AcWing 1388. 游戏(每日一题)

原题链接&#xff1a;1388. 游戏 - AcWing题库 玩家一和玩家二共同玩一个小游戏。 给定一个包含 N 个正整数的序列。 由玩家一开始&#xff0c;双方交替行动。 每次行动可以在数列的两端之中任选一个数字将其取走&#xff0c;并给自己增加相应数字的分数。&#xff08;双方…

Vscode设置滚轮进行字体大小的调节

Vscode设置滚轮进行字体大小的调节 正常的话按 ctrl 或者 ctrl - 进行字体的大小调节 1.打开Vscode&#xff0c;找打设置的图标&#xff0c;在点击设置&#xff0c;或者直接使用快捷键&#xff0c;【ctrl ,】 2. 在搜索框搜索Font Ligatures 3.双击进入settings.json ,找到如…

[大模型]# Yi-6B-Chat Lora 微调

Yi-6B-Chat Lora 微调 概述 本节我们介绍如何基于 transformers、peft 等框架&#xff0c;对 Yi-6B-Chat 模型进行 Lora 微调。Lora 是一种高效微调方法&#xff0c;深入了解其原理可参见博客&#xff1a;知乎|深入浅出Lora。 本节所讲述的代码脚本在同级目录 04-Yi-6B-Chat…

【教学类-52-04】20240412动物数独(4宫格)空1-空15

作品展示 背景需求&#xff1a; 【教学类-52-03】20240412动物数独&#xff08;4宫格&#xff09;难度1-9 打印版-CSDN博客文章浏览阅读603次&#xff0c;点赞20次&#xff0c;收藏8次。【教学类-52-03】20240412动物数独&#xff08;4宫格&#xff09;难度1-9 打印版https://…

Razzashi Raptor

拉扎什迅猛龙 Razzashi Raptor 95000金&#xff08;游戏币&#xff09;比老虎便宜多了&#xff0c;捡漏啊 为啥我开团都不出&#xff0c;很生气&#xff0c;去打架&#xff01;&#xff01;

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书&#xff0c;赛题&#xff0c;解析等资料&#xff0c;知识点培训服务 添加博主wx&#xff1a;liuliu548…

在线药房数据惨遭Ransomhub窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件119起&#xff0c;与上周相比勒索事件有所增长。 本周Blacksuit是影响最严重的勒索家族&#xff0c;Ransomhub和Blackbasta恶意家族紧随其后&#xff0c;从整体上看Lockbit3.0依旧是影响最严重的勒索家族&#xff0c;需要注意防范。…