Unity3d外部加载音频,视频,图片等资源 及根据路径获取制定格式的文件
2014-07-29 19:35
856 查看
1.根据路径获取制定文件类型的文件:
这里写一个类,调用了打开路径的方法:
using UnityEngine;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
public class SetPath : MonoBehaviour
{
public static string pic;
string path;
void Awake ()
{
//设置路径,这里的路径是导出包的exe路径下//
path=Application.dataPath+@"/../Resources";
//这里新建队列,调用访问文件的方法,获取其返回的文件名队列//
//第一个参是访问路径,第二个参是文件格式//
List<String> list_pic=GetDirFiles(path+@"/Picture/test","*.png");
foreach (string item in list_pic)
{
//item是文件名,获取文件名后返回完整路径//
pic=path+@"/Picture/GiftCard/"+item.ToString()+".png";
}
}
public List<string> GetDirFiles(string DirFullPath, string SearchPattern)
{
if (Directory.Exists(DirFullPath) == true)
{
List<string> list = new List<string>();
//获取当前目录下指定文件类型的文件列表//
string[] stringList = Directory.GetFiles(DirFullPath,SearchPattern);
foreach (string str in stringList)
{
string fileName;
fileName = System.IO.Path.GetFileNameWithoutExtension(str);
list.Add(fileName);
}
return list;
}
else
{
return null;
}
}
}
2.外部加载音频
using UnityEngine;
using System.Collections;
public class Exposure_voice : MonoBehaviour {
public string url_voice;
public static AudioClip myclip;//设置静态声音资源,便于传递//
void Start () {
//外部加载声音的路径,拼接www下载文件路径//
//注意,www加载的外部音视频都必须是ogg格式额//
url_voice="file://"+@SetPath.pic;
StartCoroutine("DownloadVoice");
}
IEnumerator DownloadVoice()
{
WWW w=new WWW(url_voice);
yield return w;
//将声音资源赋值为外部加载的声音即可//
myclip=w.audioClip;
}
}
3.外部加载视频
using UnityEngine;
using System.Collections;
public class Exposure_video : MonoBehaviour {
public GameObject video;
public string video_url;
MovieTexture movie_tex;
Material tex;
AudioSource audio;
float temp=0;
void Start ()
{
video_url="file://"+@SetPath.video_name_through;
StartCoroutine("VideoDownload");
Invoke("Initial_effect",9f);
}
IEnumerator VideoDownload()
{
WWW www=new WWW(video_url);
yield return www;
movie_tex=www.movie;
video.renderer.material.mainTexture = movie_tex;
audio.clip=www.GetAudioClip(false,true,AudioType.OGGVORBIS);
audio.Play();
movie_tex.Play();
}
}
4.外部加载图片
using UnityEngine;
using System.Collections;
public class Exposure_Pic : MonoBehaviour {
public GameObject pic;
public string url_pic_Discount;
#region Use this for initialization
void Start ()
{
url_pic_Discount="file://"+@SetPath.pic_name_gift;
StartCoroutine("Pic_Download");
}
#endregion
IEnumerator Pic_Download()
{
WWW www=new WWW(url_pic_Discount);
yield return www;
pic.renderer.material.mainTexture=www.texture;
}
}
这样就可以很容易的加载外部可更换的资源,并且不需要等待长时间的导入了。。。。
这里写一个类,调用了打开路径的方法:
using UnityEngine;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
public class SetPath : MonoBehaviour
{
public static string pic;
string path;
void Awake ()
{
//设置路径,这里的路径是导出包的exe路径下//
path=Application.dataPath+@"/../Resources";
//这里新建队列,调用访问文件的方法,获取其返回的文件名队列//
//第一个参是访问路径,第二个参是文件格式//
List<String> list_pic=GetDirFiles(path+@"/Picture/test","*.png");
foreach (string item in list_pic)
{
//item是文件名,获取文件名后返回完整路径//
pic=path+@"/Picture/GiftCard/"+item.ToString()+".png";
}
}
public List<string> GetDirFiles(string DirFullPath, string SearchPattern)
{
if (Directory.Exists(DirFullPath) == true)
{
List<string> list = new List<string>();
//获取当前目录下指定文件类型的文件列表//
string[] stringList = Directory.GetFiles(DirFullPath,SearchPattern);
foreach (string str in stringList)
{
string fileName;
fileName = System.IO.Path.GetFileNameWithoutExtension(str);
list.Add(fileName);
}
return list;
}
else
{
return null;
}
}
}
2.外部加载音频
using UnityEngine;
using System.Collections;
public class Exposure_voice : MonoBehaviour {
public string url_voice;
public static AudioClip myclip;//设置静态声音资源,便于传递//
void Start () {
//外部加载声音的路径,拼接www下载文件路径//
//注意,www加载的外部音视频都必须是ogg格式额//
url_voice="file://"+@SetPath.pic;
StartCoroutine("DownloadVoice");
}
IEnumerator DownloadVoice()
{
WWW w=new WWW(url_voice);
yield return w;
//将声音资源赋值为外部加载的声音即可//
myclip=w.audioClip;
}
}
3.外部加载视频
using UnityEngine;
using System.Collections;
public class Exposure_video : MonoBehaviour {
public GameObject video;
public string video_url;
MovieTexture movie_tex;
Material tex;
AudioSource audio;
float temp=0;
void Start ()
{
video_url="file://"+@SetPath.video_name_through;
StartCoroutine("VideoDownload");
Invoke("Initial_effect",9f);
}
IEnumerator VideoDownload()
{
WWW www=new WWW(video_url);
yield return www;
movie_tex=www.movie;
video.renderer.material.mainTexture = movie_tex;
audio.clip=www.GetAudioClip(false,true,AudioType.OGGVORBIS);
audio.Play();
movie_tex.Play();
}
}
4.外部加载图片
using UnityEngine;
using System.Collections;
public class Exposure_Pic : MonoBehaviour {
public GameObject pic;
public string url_pic_Discount;
#region Use this for initialization
void Start ()
{
url_pic_Discount="file://"+@SetPath.pic_name_gift;
StartCoroutine("Pic_Download");
}
#endregion
IEnumerator Pic_Download()
{
WWW www=new WWW(url_pic_Discount);
yield return www;
pic.renderer.material.mainTexture=www.texture;
}
}
这样就可以很容易的加载外部可更换的资源,并且不需要等待长时间的导入了。。。。
相关文章推荐
- VideoView根据视频路径获取视频长度(播放前,同样适用于音频资源)
- 获取系统的图片,音频和视频文件
- 怎样从ipa格式文件获取资源图片
- C#如何根据文件格式类型或扩展名来获取关联程序的路径?
- VS2008 VC 如何把图片等资源文件通过本地路径加载方式加载
- 获取系统的图片,音频和视频文件
- 根据路径获取视频、图片的缩略图
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- 根据文件名称获取资源文件路径 pathForResource
- Android根据文件路径获取图片的名字
- 图片,音频,视频文件的上传 以及图片缩略图的制作,音频文件时长的获取以及 视频文件缩略图的获取
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- 图片,音频,视频的文件加密,解密,保护自身资源
- Android动态加载外部jar包及jar包中图片等资源文件
- 加载上传图片,获取文件名、文件路径并保存到程序的文件夹中
- 常见的视频、音频、图片文件的格式
- unity异步从外部文件加载音频和图片
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- 获取手机拍照的图片或者录像的视频文件-路径方法(以时间来命名图片)