浅谈Unity之 获取本地文件夹下所有视频和图片

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 获取本地文件夹下所有视频和图片

前言:每日记录自己学习unity的心得和体会,小弟才疏学浅,如有错误的地方,欢迎大佬们指正,感谢~


using System.Collections;

using System.Collections.Generic;

using System.IO;

using UnityEngine;

using UnityEngine.UI;

using UnityEngine.Video;

public class Party_Building : MonoBehaviour

{

   [Header ("保存视频文件地址的列表")]

   public List<string> listVideoPath = new List<string>();

   //string path = "\\党建视频\\";

   //exe打包文件的路径

   string configPath = System.Environment.CurrentDirectory+ @"\DJmp4";   //视频文件夹

   string ceshimp4 = "E:\\unity.Demo\\Intelligence_Community(zihuixiaoqu)\\智慧小区Demo\\DJmp4";

   public VideoPlayer VideoPlayer;

   // Start is called before the first frame update

   void Start()

   {

       GetFilesAllMp4(ceshimp4);

       VideoPlayer.url = listVideoPath[0];

   }

   //获取本地文件夹里所有视频文件

   public void GetFilesAllMp4(string path_)

   {

       if (Directory.Exists (path_))

       {

           DirectoryInfo direction = new DirectoryInfo(path_);

           FileInfo[] files = direction.GetFiles("*");

           Debug.Log("视频数量" + files.Length);

           for (int i = 0; i < files.Length; i++)

           {

               //忽略关联文件

               if (files[i].Name.EndsWith(".meta"))

               {

                   continue;

               }

               //Debug.Log("文件名:" + files[i].Name);

               Debug.Log("文件绝对路径:" + files[i].FullName);

               listVideoPath.Add(files[i].FullName);

               //Debug.Log("文件所在目录:" + files[i].DirectoryName);

             

           }

       }

       else

       {

           return;

       }

   }

   private List<Texture2D> images = new List<Texture2D>();

   private List<Sprite> imageSprite = new List<Sprite>();

   //获取文件夹下所有图片

   public void GetFilesAllSprite(string path_)

   {

       List<string> filePaths = new List<string>();

       string imgtype = "*.BMP|*.JPG|*.GIF|*.PNG";

       string[] ImageType = imgtype.Split('|');

       for (int i = 0; i < ImageType.Length; i++)

       {

           //获取Application.dataPath文件夹下所有的图片路径  

           string[] dirs = Directory.GetFiles((Application.dataPath + path_), ImageType[i]);

           for (int j = 0; j < dirs.Length; j++)

           {

               filePaths.Add(dirs[j]);

           }

       }

       for (int i = 0; i < filePaths.Count; i++)

       {

           Texture2D tx = new Texture2D(100, 100);

           tx.LoadImage(GetImageByte(filePaths[i]));

           //转化成sprite添加到列表使用

           imageSprite.Add(ChangeToSprite(tx));

           //转化成Texture2D添加到列表使用

           images.Add(tx);

       }

   }

   //返回图片的字节流

   private static byte[] GetImageByte(string imagePath)

   {

       FileStream files = new FileStream(imagePath, FileMode.Open);

       byte[] imgByte = new byte[files.Length];

       files.Read(imgByte, 0, imgByte.Length);

       files.Close();

       return imgByte;

   }

   private Sprite ChangeToSprite(Texture2D tex)

   {

       Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));

       return sprite;

   }

}


相关文章
|
图形学
unity3d置灰image图片shader
新建材质球,赋值该shader,将材质球复制到image上即可置灰image Shader "UIEffect/ImageGray" { Properties { [PerRendererData] _MainTex("...
1562 0
|
4月前
|
图形学 Android开发 iOS开发
穿越数字洪流,揭秘Unity3d中的视频魔法!Windows、Android和iOS如何征服RTSP与RTMP的终极指南!
【8月更文挑战第15天】在数字媒体的海洋中,实时视频流是连接世界的桥梁。对于那些渴望在Unity3d中搭建这座桥梁的开发者来说,本文将揭示如何在Windows、Android和iOS平台上征服RTSP与RTMP的秘密。我们将深入探讨这两种协议的特性,以及在不同平台上实现流畅播放的技巧。无论你是追求稳定性的RTSP拥趸,还是低延迟的RTMP忠实粉丝,这里都有你需要的答案。让我们一起穿越数字洪流,探索Unity3d中视频魔法的世界吧!
75 2
|
6月前
|
图形学 Android开发 UED
【Unity小技巧】图片使用的一些常见问题
【Unity小技巧】图片使用的一些常见问题
146 0
|
6月前
|
图形学
【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)
【实现100个unity特效之2】使用shader和shader Graph实现2d图片描边效果(附源码)
316 0
|
7月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
124 0
|
7月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
104 0
|
7月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
119 0
|
7月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
256 0
|
定位技术 API 图形学
unity-2D游戏官方案例--带视频案例(1)(层级渲染,物理碰撞,粒子动画,UI等多位基础一体化)
unity-2D游戏官方案例--带视频案例(1)(层级渲染,物理碰撞,粒子动画,UI等多位基础一体化)
222 1
|
存储 算法 图形学
Unity图片导入
Unity图片导入
545 0
Unity图片导入

热门文章

最新文章