WWW同步加载资源方案

作者: 2b75747cf703 | 来源:发表于2017-01-24 11:20 被阅读293次

    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;
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:WWW同步加载资源方案

        本文链接:https://www.haomeiwen.com/subject/nrpnbttx.html