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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 获取本地文件夹下所有视频和图片

前言:每日记录自己学习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;

   }

}


相关文章
|
存储 算法 图形学
Unity图片导入
Unity图片导入
398 0
Unity图片导入
|
图形学
Unity 特殊文件夹
Editor: 文件夹中的脚本主要用来扩展Unity编辑器功能。这些脚本不会被打包进最终发布的游戏中。可以存在多个Editor文件夹,此文件夹中的脚本不能当GameObject的组件。 Editor Default Resources 使用Editor文件夹拓展编辑器功能时,可以用EditorGuiUtility.
1805 0
|
Go 图形学 Android开发
Unity 之 自动设置导入资源属性选项(模型、图片、声音)
在项目开发中会经常性的更换、导入很多资源,而且对于资源的设置容易出现设置错误或者忘记设置的情况,下面的Code是用untyi自带的AssetPostprocessor功能把导入的资源根据一定的规则自动设置对应的格式选项,使用的时候也很方便,只需要把脚本...
2591 0
|
图形学
UNITY和图片像素的换算
https://zhidao.baidu.com/question/143233873.html   1米X1米换算成像素是2835X2835的
|
图形学 开发工具 Java
Unity3d手游开发中的特殊文件夹
这里列举出手游开发中用到了所有特殊文件夹。 1.Editor Editor 文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。
827 0
|
4月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
50 0
|
4月前
|
人工智能 自然语言处理 区块链
【Unity 3D】元宇宙概念、应用前景、价值链等概述
【Unity 3D】元宇宙概念、应用前景、价值链等概述
52 0