【Unity】动态读取本地图片的方法

【需求】一个软件会不断生成新的图片,保存在我指定的目录下。我的任务是:每生成一个新图片,就把它切成两张图,保存在别的地方。

【解决问题的要点】

 1.   C#读取文件的方法:

(1)通过FileInfo和DirectoryInfo类来读取文件和文件夹属性(用来创建文件夹、获取文件夹中所有文件的数组)

(2)通过File读写文件(读取指定文件的数据)

(3)使用流来读写文件  FileStream

         StreamReader(读取流-读取数据)StreamWriter(写入流-向别人传输)

2.Unity中的相对路径

System.Environment.CurrentDirectory // 获取项目根目录路径 
Application.dataPath                // Assets 文件夹的绝对路径(例如:E:/Projects/dev/Client-Unity)
Application.streamingAssetsPath     // StreamingAssets 文件夹的绝对路径(例如:E:/Projects/dev/Client-Unity/Assets)

3.C#对文件夹中的文件按照创建时间排序

 private void SortAsFileCreationTime(ref FileInfo[] arrFi)
  {
    Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { returnx.CreationTime.CompareTo(y.CreationTime); });
  } 

4.Unity读取本地图片的方式

(1)采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名,注意不采用后缀名。(意思是Load方法直接在Resources目录下找资源,路径已经指定)。 

(2)采用WWW类加载资源,此WWW类可以加载网络资源(http://格式),文件协议资源(flie://格式),ftp格式等等。

(3)采用C#Texture2D的LoadImage函数,读取png或者jpeg格式的图片数据。

5.代码:

(1)监听目标文件夹的文件数量,一旦有新文件,就立刻裁剪、加入生成队列。



猜你喜欢

转载自blog.csdn.net/qq_36622009/article/details/80742093
今日推荐