WWW同步加载资源方案
2017-01-24 本文已影响293人
2b75747cf703
AudioClip有从外部加载资源的方式,但是如果不知道采样率什么的就悲剧了。。
Texture2D有从外部加载资源的方式,但是某些设备(比如某米3)加载非2次幂大小的就悲剧了。。
WWW加载资源要协程,还要写异步代码有点忧伤。。
using UnityEngine;
using System.Collections;
namespace Babybus.Framework
{
public class WWWLoader
{
public static AudioClip LoadAudioClipFromFile(string path)
{
var www = LoadFromFile(path);
if (www == null)
return null;
return www.audioClip;
}
public static Texture2D LoadTexture2DFromFile(string path)
{
var www = LoadFromFile(path);
if (www == null)
return null;
return www.texture;
}
private static WWW LoadFromFile(string path)
{
var enumerator = LoadFromFileEnumerator(path);
while (enumerator.MoveNext())
;
return enumerator.Current as WWW;
}
private static IEnumerator LoadFromFileEnumerator(string path)
{
var www = new WWW("file:///" + path);
while (!www.isDone)
;
yield return www;
}
}
}